`
yx1989
  • 浏览: 11046 次
  • 性别: 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包围,用以处理为预料的异常。
分享到:
评论

相关推荐

    day09-ATM系统.md

    `login` 和 `register` 方法的具体实现细节没有给出,但可以预见它们将分别处理用户登录和注册的功能。 #### 项目收获 通过本项目的开发,开发者可以学习到以下几个方面的知识: - **面向对象编程实践**:理解如何...

    宜立方商场文档 day01-至-day14(全).zip

    这包括用户注册登录、商品浏览、购物车管理、订单处理、支付系统等基本功能,以及可能的个性化推荐、促销策略、售后服务等扩展需求。 2. **设计阶段**(02.宜立方商城-day02-v3.0.doc) 设计阶段涉及到UI/UX设计,...

    day08-day10-智慧商城项目.zip

    4. **API设计**:前后端分离架构下,后端提供JSON格式的API接口给前端调用,如登录注册接口、商品查询接口、购物车操作接口、订单创建接口等。这些接口需要遵循一定的规范,如REST原则,保证接口的幂等性和安全性。 ...

    崔希凡javaweb笔记day24-day28

    5. **综合项目实践**:在day28,可能是将前面所学的知识整合到一个实际的小型项目中,例如构建一个简单的用户注册登录系统。这个环节通常会涉及到会话管理、错误处理、文件上传下载等进阶话题,帮助学生更好地理解和...

    [HeyJava][传智播客]BBS-day002-003.rar

    在这个阶段,讲师可能已经介绍了BBS的基本概念,如用户注册、登录功能,以及论坛的帖子创建、回复和管理等。视频可能涵盖了如何使用Java进行后台开发,包括数据库交互、Servlet、JSP页面的实现,以及前端HTML、CSS和...

    廖雪峰python3 完整带索引,图片 最新教程 pdf版

    刚刚学习Python, 边看廖神的教程...Day 10 - 用户注册和登录 Day 11 - 编写日志创建页 Day 12 - 编写日志列表页 Day 13 - 提升开发效率 Day 14 - 完成Web App Day 15 - 部署Web App Day 16 - 编写移动App FAQ 期末总结

    崔希凡javaweb笔记day14-day17

    这些课程可能还会涉及一些实战项目,比如构建一个简单的登录注册系统或者电商网站的前端页面,以帮助学员将理论知识应用到实践中。通过崔希凡老师的指导,学习者可以系统地掌握JavaWeb开发的基本技能,并为更高级的...

    day02-progress-steps(进度条)

    在网页设计中,进度条是一种常见的用户界面元素,它能够为用户提供有关任务完成度的视觉反馈。本项目“day02-progress-steps”专注于利用HTML5、CSS3和JavaScript技术来创建一个动态的进度条组件。这个组件可以用于...

    DAY04-CODE-04-PM17-PROJECT-USER-INFO-WEB_famoustah_商城_

    这通常涉及到用户注册、登录、个人信息维护、密码找回等操作。在实现这部分功能时,开发者需要关注用户数据的安全存储,例如使用哈希算法对密码进行加密,同时还要考虑用户体验,如通过邮箱或手机短信验证来确保用户...

    20151228-Android基础视频day07-day11源码

    `day09_code`可能涉及到用户界面(UI)设计,包括使用Android的布局管理器如LinearLayout,RelativeLayout,和ConstraintLayout来构建界面。此外,可能还讲解了使用TextView,Button,EditText等基本UI元素,以及...

    Python 3教程(廖雪峰).rar

    Day 10 - 用户注册和登录 501 Day 11 - 编写日志创建页 511 Day 12 - 编写日志列表页 520 Day 13 - 提升开发效率 527 Day 14 - 完成 Web App 532 Day 15 - 部署 Web App 534 Day 16 - 编写移动 App 544 FAQ ...

    传智播客崔希凡JavaWeb-day24-综合练习1-全部资料

    2. **用户模块**:这部分内容可能包括用户注册、登录和激活功能的实现。用户注册通常涉及到数据库操作,如存储用户信息,密码加密等。登录功能则涉及到身份验证和会话管理。激活功能可能是通过发送激活邮件或短信,...

    day05-bootStrap.zip

    5. **表单组件**:Bootstrap的表单组件提供了预设样式,可用于创建搜索框、注册/登录表单等。在商城网站中,这些组件可以用于收集用户的搜索条件、购物车信息等。 6. **按钮和链接**:Bootstrap提供了各种样式的...

    PyPI 官网下载 | onegov.election_day-0.7.0-py3-none-any.whl

    PyPI是Python社区官方的第三方软件包仓库,开发者可以在这里发布他们的Python模块、库和其他可分发的代码资源,用户则可以通过pip等工具方便地下载和安装这些资源。 描述中提到的"资源来自pypi官网,解压后可用。...

    day07-Split Landing Page(分割登陆页)

    在营销和电子商务领域,它是一个重要的工具,帮助网站所有者了解哪种页面设计更能吸引用户并促使他们采取期望的行动,如注册、购买或订阅。在本课程“day07-Split Landing Page”中,我们将深入探讨如何使用HTML、...

    JavaWeb崔希凡老师视频教程_day28-资料源码.zip

    这些组件可以增强Web应用程序的功能,比如进行登录验证、字符编码转换,或者监听用户的登录登出事件。 总的来说,这个JavaWeb崔希凡老师视频教程_day28-资料源码的学习资源包含了Web开发中的核心概念和技术,是提升...

    张泽华老师android视频源代码(day8-day9)

    【Android开发深度解析——张泽华老师视频源代码学习(Day8-Day9)】 在深入探索Android开发的过程中,张泽华老师的教学资源始终是开发者们不可或缺的学习材料。本压缩包包含的是张泽华老师在第8天和第9天讲解的...

    张泽华老师android视频源代码(day10-day11)

    通过源码,我们可以学习如何注册、实现和响应广播。 3. **异步任务处理**:Android中的AsyncTask可以方便地在后台执行耗时操作,避免阻塞主线程。这部分可能包含如何定义和使用AsyncTask,以及处理UI更新。 4. **...

    happyday11-信号.docx

    1) SIGHUP(挂断信号):当用户终端连接结束,例如用户退出登录时,SIGHUP信号会被发送给同一session内的所有进程,提示它们与控制终端断开。默认情况下,进程会终止,但可以被捕获并忽略,如wget在接收到SIGHUP时...

    day08-HTTP&Tomcat&Servlet.zip

    接着,会学习如何编写Servlet,包括继承HttpServlet类,重写doGet或doPost方法,以及在web.xml中注册Servlet。最后,我们将这些Servlet部署到Tomcat服务器,通过HTTP请求来调用它们,观察并调试结果。 在这个过程中...

Global site tag (gtag.js) - Google Analytics