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包围,用以处理为预料的异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值