web项目电商网站开发实战(1)

【前言】

商城项目实战day1心得:
   今天正式进入商城的项目实战。以前,总是写个小程序,里面弄个main方法。或者做个小网页,验证验证一下是否有做出符合要求的效果就可以。通过今天第一天的实战效果来看,大部分写出来的代码以前都做过,但是感觉代码规范方面得到了提高。
  今天做了用户模块的功能,包含用户注册功能,用户登录功能,用户退出功能。其中,注册功能又包括了异步校验用户名是否存在,生成一个注册用户激活码,给用户在注册表单填写的邮箱发送用户激活码这三个比较难的功能。下面是总结好的个人收获。
  (1).MVC思想:进入一个页面时候,不能直接进入jsp页面。而是要先进入处理该页面的Servlet。进行后台处理数据以后,在Servlet中返回该页面。今天在进入首页index.jsp,进入到jsp ,马上就写了一个标签 然后index()方法里面直接转发到index.jsp。这样做尽管有些毫无意义。但是符合了MVC的设计思想。
 (2).用一个UserServlet解决了所有用户模块功能。之前,做一个注册,生成一个注册Servlet。做一个登录,生成一个登录Servlet...一个商品的增删改查和分页下来,有9个Servlet。这样子,限定了Servlet只能处理一个功能。但是,通过昨天学习了动态代理,能增强一个类的方法。通过动态代理写了一个所有servlet都应该继承的BaseServlet工具类。BaseServlet里面有个service()方法。我们知道,一个servlet如果有写service()方法的时候,不管是post请求或get请求,只要有请求访问servlet,都会自动优先执行service(),并且不会再执行doget()和dopost()这两个方法。
     UserServlet继承了BaseServlet,就得到了BaseServlet这个父类的service()方法。这样,每次有请求访问到UserServlet,就执行了service()。在sevice()里面。我们每次要访问Servlet都要带一个方法名。然后通过这个方法名。利用反射得到这个方法,并让它执行。
    按照这样的思路,UserServlet只要写好注册,异步验证,登录,激活用户等方法,当有请求带着方法名来访问UserServlet时,就会被自动调用。所以,UseServlet能写所有用户模块的功能。
3)在注册功能中,当用户名能被注册,就通过UUID生成一个64位的用户账户激活码code;这个code一存放到数据库中,二是通过邮箱jar包mail.jar。构建了一个MailUtils工具类,我们通过易邮邮箱服务器管理软件,自己建立一个邮箱账号[email protected]代表官方账号。用户填写的邮箱账号是收件方。通过MailUtils的构建邮件发送操作。官方账号将带有访问UserServlet的激活方法active发送给了用户的邮箱。用户点击了链接就携带了code访问UserServlet的active方法。然后active方法通过这个code与数据库中的code比较。如果相等。就表示是正确的激活码。把数据库中的激活状态state设置成2 .就表示这个用户激活了。
4)在验证用户是否登录成功。除了判断用户名是否正确,还需要用户的状态是否是激活的。三者都满足才算激活成功。
5)退出功能的核心原理就是消除session中存放的用户实体。采用invalidate()手动销毁的方法。以后如果做自动登录,也要销毁cookie中的用户实体
6)在注册表单中,有一项生日,是输入框形式的,上传到Servlet中,得到的是字符串类型的生日日期,但是我们的User类的生日变量是Date的。这样子,通过JavaBean封装会出现String和Date不匹配的情况,就会报错。通过工具类MyDateConverter注册,可以完成String 类型向Date类型的转换。了解即可

   总结,项目运用到的综合知识很多。现在离能独立实现完整功能还有不小的差距,希望通过不断总结方法,掌握知识运用技巧,理解学习过的知识,坚持做完每日的模块功能,提高编程水平。

【用户功能模块代码】


你可能感兴趣的:(web项目电商网站开发实战(1))