`
yx1989
  • 浏览: 11052 次
  • 性别: Icon_minigender_1
  • 来自: 烟台
社区版块
存档分类
最新评论

day09-用户注册登录

 
阅读更多

先计划好步骤,写个readme

1. 搭建开发环境
     1.1 导入开发包
     1.2 创建组织程序的包
     1.3 在类目录下创建代表数据库的xml文件
2. 开发实体
3. 开发dao
4.开发service
5.开发web


1.创建用来模拟数据库的xml文件,创建xml里保存的User实体类。
2.开发dao,用dom4j实现find(String name),find(String name, String password),和add(User user)方法
     为什么用类加载器获取文件流?这样做有什么好处?见使用类加载器的方式管理资源和配置文件。
     用junit测试dao
3.开发service层,实现register(User user)和login(String username,String password)方法。
     在register方法里检查用户名是否存在,如果存在的话,抛出一个UserExitException通知上层程序。这里需要自定义一个异常。
     如果用户名不存在,则调用dao,将传进来的用户写入到数据库。
     login方法就是调用dao的find方法,登录不做校验。
     业务类还要做两件事情:放到
          1.为用户分配一个唯一的ID,通过UUID完成。
          2.在ServiceUtils里对用户的密码做处理,通过一个随机的字串和用户的密码混在一起做md5,然后用Base64处理成16进制。
     用junit测试service。
4.开发web层。
     用RegisterUIServlet将用户forward到注册页面register.jsp
     在register.jsp里用表单收集用户的信息,提交到RegisterServlet。
     定义用于保存表单的RegisterFormBean。这个类里还有用来校验数据的validate()方法,在类里定义一个Map errors 属性,将校验失败项和失败原因存在Map里,便于在register里显示原因。
     定义WebUtils,这里有两个方法,
          1. request2Bean(request,beanClass) :将request的参数列表保存成Map,然后调用BeanUtis.populate(bean,map)来封装并返回bean
          2.copyBean,使用BeanUtils.copyProperties(dest,src)方法将bean里的属性封装到User对象,这里需要注册一个利用SimpleDateFormat实现的当传入日期字符串为空的时候返回null的日期转换器。
     RegisterServlet先用request2Bean将表单存到formBean里,然后调用其校验方法。
          若是检验失败将表单存到request里,并forward到注册页面,formBean里封装了校验失败的原因和上次填写的数据,在注册页面里取出这些数据,并显示。
          若是校验成功先调用copyBean吧表单封装到实体,然后调用业务类,把user存到数据库。这个时候如果捕获到业务类抛出的用户名已存在异常,则将消息存到request里,将用户forward到注册页面。若是没有收到异常,就将成功信息保存到request里,将用户forword消息显示页面,并显示该消息。

     在整个RegiserServlet的doGet()里用try-catch包围,用以处理为预料的异常。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics