用户模块之注册功能完成|学习笔记

简介: 快速学习用户模块之注册功能完成

开发者学堂课程【Java Web项目实战2:图书商城:用户模块之注册功能完成】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/35

用户模块之注册功能完成


UserDao.java:

1. package cn.itcast.bookstore.user.dao;

2. import java.sql.SQLException;

3. /**

4. *User持久层

5. * @author cxf

6. *

7. */

8. public class UserDao {

9.   private QueryRunner qr = new TxQueryRunner();

10.   /**

11. 按用户名查询

12. *@param username

13. *@return

14. */

15.   public User findByUsername(String username){

16.          try {

17. String sql = "select * from tb_user where username=?";

18. return qr.query(sql,new BeanHandler<User>(User.class),username);

19. } catch (SQLException e) (

20. throw new RuntimeException(e);

21. }

22. }

23. /**

24. 按用户名查询

25. *@param username

26. *@return

27. */

28.   public User findByUsername(String email){

29.          try {

30. String sql = "select * from tb_user where email=?";

31. return qr.query(sql,new BeanHandler<User>(User.class),email);

32. } catch (SQLException e) (

33. throw new RuntimeException(e);

34. }

35. }

36. /**

37. *插入user

38. **param user

39. */

40. public void add(User user) {

41. try {

42. String sql = "insert into tb_user values(?,?,?,?,?,?)";

43. Object[]params=(user.getUid(),user.getusername(),

44. user.getPassword(),user.getEmail(),user.getCode(),

45. user.isState()};

46. qr.update(sql,parms);

47. } catch(SQLException e) {

48. throw new RuntimeException(e);

49. }

50. }

51. }

Userservice,java:

1.package cn.1tcast.pookstore.user.service;

2.import cn.itcast.bookstore.user.dao.UserDao;

3.import cn.itcast.bookstore.user.domain.User;

4./**

5.*User业务层

6.*@author cxf

7.*

8.*/

9.public class UserService (

10.private UserDao userDao = new UserDao();

11./**

12.*注册功能

13.* @param form

14.*/

15.public void regist(User form) throws UserException(

16.//校验用户名

17.User user = userDao.findByUsername(form.getUsername());if(usex!= null)throw new UserException("用户名已被注册!");

18.//校验email

19.user = userDao.findByEmail(form.getEmail());

20.if(user != null)throw new UserException("Email已被注册!");

21.//插入用户到数据库

22.userDao.add(form);

23.}

24.

UserServlet.java:

 

1. package cn.itcast.bookstore.user.web.servlet;

2. import java.io.IOException;

3. /**

4. *User表述层

5. */

6. public class UserServlet extends BaseServlet {

7. private UserService userService = new UserService();

8. /**

9. *注册功能

10. * @param request

11. * @param response

12. * @return

13. * @throws ServletException

14. * @throws IOException

15. */

16. public String regist(HttpServletRequest request, HttpservletResponse response)

17. throws ServletException, IOException {

18. /*

19. *1.封装表单数据到form对象中

20. *2.补全:uid、code

21. *3.输入校验

22. *>保存错误信息、form到request域,转发到regist.jsp

23. *4.调用service方法完成注册

24. *>保存错误信息、form到request域,转发到regist.jsp

25. *5.发邮件

26. *6.保存成功信息转发到msg.jsp

27. */

28. //封装表单数据

29. User form= CommonUtils.toBean(request.getParameterMap(),User.class);

30. //补全

31. form.setUid(CommonUtils.uuid());

32. form.setcode(CommonUtils.uuid()+ CommonUtils.uuid());

33. /*

34. *输入校验

35. *1.创建一个Map,用来封装错误信息,其中key为表单字段名称,值为错误信息

36. */

37. Map<String,String> errors = new HashMap<String,String>();

38. /*

39. *2.获取form中的username、password、email进行校验

40. */

41. String username = form.getUsername();

42. if(username == null Il username.trim().isEmpty()){

43. errors-put(”username”,"用户名不能为空!");

44. } else if(username.length()< 3 Il username.length()> 10)(errors.put("username","用户名长度必须在3~10之间!");

45. }

46. String password = form.getPassword();

47. if(password== null ‖password.trim().isEmpty()){

48. errors-put("password”,"密码不能为空!");

49. } else if(password.length()< 3 ‖password.length()> 10) {

50. errors、put("passwoxd","密码长度必须在3~10间!"):

51. }

52. String email = form.getEmail();

53. if(email == null ‖ email.trim().isEmpty()){

54. errors.put(”email","Email不能为空!");

55. } else if(email.matches("\\w+@\\w\\.\\w")){

56. errors.put("emai1”,"Email格式错误!");

57. }

58. /*

59. *3.判断是否存在错误信息

60. */

61. if(errors.size()> 0){

62. //1.保存错误信息

63. //2.保存表单数据

64. //3.转发到regist.jsp

65. request.setAttribute("errors",errors);

66. request.setAttribute("form",form);

67. return "f:/jsps/user/regist.jsp";

68. }

69. /*

70. *调用service的regist()方法

71. */

72. try {

73. userservice.regist(form);

74. } catch (UserException e) {

75. /*

76. *1.保存异常信息

77. *2.保存foxm

78. *3.转发到regist.jsp

79. */

80. request.setAttribute("msg",e.getMessage());

81. request.setAttribute("form",form);

82. return "f:/jsps/user/regist.jsp";

83.

84. /*

85. *发邮件

86. *准备配置文件!

87. */

88. //获取配置文件内容

89. Properties props = new Properties();

90. props.load(this.getClass().getClassLoader()

91. ·getResourceAsStream("email_template.properties"));

92. string host=props.getproperty("host");//获取服务器主机

93. string uname= props·getProperty("uname");//获取用户名

94. string pwd= props.getProperty("pwd");//获取密码

95. Stringfrom =props.getProperty("from");//获取发件人

96. string to =form.getEmail();//获取收件人

97. String subject三props.getProperty("subject");//获取主题

98. string content=props.getProperty("content");//获取邮件内容

99. content = MessageFormat.format(content,form.getcode());//替换{0}

100. Session session=MailUtils.createSession(host,uname,pwd);//得到session

101. Mail mail= new Mail(from,to,subject,content);//创建邮件对象

102. try {

103. MailUtils.send(session,mail);//发邮件!

104. } catch (MessagingException e) {

105. }

106. /*

107. *1.保存成功信息

108. *2.转发到msg.jsp

109. */

110. request.setAttribute("msg”,"恭喜,注册成功!请马上到邮箱激活");

111. }

112. }

相关文章
|
2月前
|
JSON 小程序 前端开发
创建一个属于自己的小程序(注册开发账号)
介绍如何创建微信小程序账号,包括注册流程、下载安装微信开发者工具、创建项目以及项目结构介绍。
创建一个属于自己的小程序(注册开发账号)
若依修改,修改代理线上接口登录后台,若依框架如何使用线上的接口,如何在本地获取网页上的接口
若依修改,修改代理线上接口登录后台,若依框架如何使用线上的接口,如何在本地获取网页上的接口
|
11月前
|
存储 小程序 关系型数据库
后台交互-个人中心->小程序登录微信登录接口演示,小程序授权登录理论,小程序授权登录代码演示,微信表情包存储问题
后台交互-个人中心->小程序登录微信登录接口演示,小程序授权登录理论,小程序授权登录代码演示,微信表情包存储问题
108 0
|
XML 前端开发 数据库
若依框架如何开启注册功能?
若依框架如何开启注册功能?
1794 0
|
JSON 前端开发 数据库
注册功能实现 | 学习笔记
快速学习 注册功能实现
后台登录模块理解
后台登录模块理解
|
前端开发 测试技术 数据安全/隐私保护
|
Java 数据库 开发者
注册功能流程分析 | 学习笔记
快速学习注册功能流程分析
177 0
注册功能流程分析 | 学习笔记
|
SQL Java 数据库
用户模块之注册功能完成|学习笔记
快速学习 用户模块之注册功能完成
|
Java 数据库 开发者
用户模块之注册功能流程分析|学习笔记
快速学习 用户模块之注册功能流程分析
146 0