900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java用servlet实现登录注册_Servlet-实现用户的注册功能

java用servlet实现登录注册_Servlet-实现用户的注册功能

时间:2020-06-21 02:41:16

相关推荐

java用servlet实现登录注册_Servlet-实现用户的注册功能

1.上一篇已经实现了与数据库的连接测试,这一次就实现对用户基本信息的注册功能,,,,,,本次整体构架如下图所示:

2.第一步,创建一个实体类User.java,实现对用户基本信息的封装,如下图所示:

代码如下:

1 packagelin.entity;2

3 public classUser {4

5 //定义的变量6 //与数据库中t_user中定义的名称一致7

8 //用户ID

9 private intid;10 //用户名

11 privateString name;12 //用户密码

13 privateString password;14 //用户邮箱

15 privateString email;16 //获取变量的get和set方法以及toSting方法

17 public intgetId() {18 returnid;19 }20 public void setId(intid) {21 this.id =id;22 }23 publicString getName() {24 returnname;25 }26 public voidsetName(String name) {27 this.name =name;28 }29 publicString getPassword() {30 returnpassword;31 }32 public voidsetPassword(String password) {33 this.password =password;34 }35 publicString getEmail() {36 returnemail;37 }38 public voidsetEmail(String email) {39 this.email =email;40 }41 @Override42 publicString toString() {43 return "User [id=" + id + ", name=" + name + ", password=" + password + ", email=" + email + "]";44 }45

46 }

1 packagelin.entity;2

3 public classUser {4

5 //定义的变量6 //与数据库中t_user中定义的名称一致7

8 //用户ID

9 private intid;10 //用户名

11 privateString name;12 //用户密码

13 privateString password;14 //用户邮箱

15 privateString email;16 //获取变量的get和set方法以及toSting方法

17 public intgetId() {18 returnid;19 }20 public void setId(intid) {21 this.id =id;22 }23 publicString getName() {24 returnname;25 }26 public voidsetName(String name) {27 this.name =name;28 }29 publicString getPassword() {30 returnpassword;31 }32 public voidsetPassword(String password) {33 this.password =password;34 }35 publicString getEmail() {36 returnemail;37 }38 public voidsetEmail(String email) {39 this.email =email;40 }41 @Override42 publicString toString() {43 return "User [id=" + id + ", name=" + name + ", password=" + password + ", email=" + email + "]";44 }45

46 }

View Code

3.第二步:创建一个servlet类,实现对数据库中用户信息的插入、查找等,具体的实现代码如下所示:

1 packagelin.Servlet;2

3 importjava.io.IOException;4 importjava.sql.Connection;5 importjava.sql.PreparedStatement;6 importjava.sql.ResultSet;7 importjava.sql.SQLException;8

9 importjavax.servlet.ServletException;10 importjavax.servlet.annotation.WebServlet;11 importjavax.servlet.http.HttpServlet;12 importjavax.servlet.http.HttpServletRequest;13 importjavax.servlet.http.HttpServletResponse;14

15 importlin.db.DBServlet;16 importlin.entity.User;17

18 /**

19 * Servlet implementation class RegisterServlet20 */

21 /*@WebServlet("/RegisterServlet")*/

22 public class RegisterServlet extendsHttpServlet {23 private static final long serialVersionUID = 1L;24

25 /**

26 *@seeHttpServlet#HttpServlet()27 */

28 publicRegisterServlet() {29 super();30 //TODO Auto-generated constructor stub

31 }32

33 /**

34 *@seeHttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)35 */

36 protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {37 //TODO Auto-generated method stub38 //跳转到register.jsp

39 request.getRequestDispatcher("/WEB-INF/page/register.jsp").forward(request, response);40 }41

42 /**

43 *@seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)44 */

45 protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {46 //TODO Auto-generated method stub47 //contentType=”text/html;charset=UTF-8”的作用是指定服务器响应给浏览器的编码。

48 /*request.setCharacterEncoding(“UTF-8”)的作用是设置对客户端请求和数据库取值时的编码,49 * 不指定的话使用iso-8859-1。(只解决POST乱码)*/

50 request.setCharacterEncoding("UTF-8");51 response.setContentType("text/html);charset=UTF-8");52

53 System.out.println("注册的用户名是:"+request.getParameter("name"));54

55 //获取实体User中的变量,将变量插入到数据库中,完成注册

56 User user=newUser();57 //获取注册的用户名,"name"要与jsp页面中的变量名一致

58 String name=request.getParameter("name");59 //获取注册的密码

60 String password=request.getParameter("password");61 //获取注册的邮箱

62 String email=request.getParameter("email");63

64 //将获取到的注册信息放入user中

65 user.setName(name);66 user.setPassword(password);67 user.setEmail(email);68

69 try{70 //获取数据库的连接,并将user中的数据插入数据库中71 //查询当前的用户名和邮箱在数据库中是否已经被注册过

72 String sql="select id from t_users where name =? or email=?";73 DBServlet conn=newDBServlet();74 //与数据库获取连接

75 Connection connection=conn.getConn();76 //SQL语句被预编译并存储在PreparedStatement对象中

77 PreparedStatement statement=connection.prepareStatement(sql);78 //将第一个问号的name值添加进去

79 statement.setString(1, name);80 statement.setString(2, email);81 //执行sql语句

82 ResultSet rs=statement.executeQuery();83

84 //判断rs集合中是否为null,为null表示数据库中不存在重复的85 //否则存在重复数据,注册失败

86 if(rs.next())87 {88 System.out.println("注册失败,用户名或者邮箱已经存在,");89 //重新跳转到注册页面

90 request.getRequestDispatcher("/WEB-INF/page/register.jsp").forward(request, response);;91 }92 else

93 {94 String sql1="insert into t_users (name,password,email) values(?,?,?)";95 statement=connection.prepareStatement(sql1);96 statement.setString(1, name);97 statement.setString(2, password);98 statement.setString(3, email);99

100 int result=statement.executeUpdate();101 if(result==1)102 {103 System.out.println("注册成功,欢迎你:"+name);104 request.setAttribute("remind", "注册成功");105 request.getRequestDispatcher("/WEB-INF/page/register.jsp").forward(request, response);106 }107 else

108 {109 System.out.println("注册失败");110 request.getRequestDispatcher("/WEB-INF/page/register.jsp").forward(request, response);111 }112

113 }114

115 //关闭数据库连接

116 rs.close();117 statement.close();118 connection.close();119 } catch(SQLException e) {120 //TODO Auto-generated catch block

121 System.out.println("数据库连接失败");122 e.printStackTrace();123 }124

125 }126

127 }

View Co

1 packagelin.Servlet;2

3 importjava.io.IOException;4 importjava.sql.Connection;5 importjava.sql.PreparedStatement;6 importjava.sql.ResultSet;7 importjava.sql.SQLException;8

9 importjavax.servlet.ServletException;10 importjavax.servlet.annotation.WebServlet;11 importjavax.servlet.http.HttpServlet;12 importjavax.servlet.http.HttpServletRequest;13 importjavax.servlet.http.HttpServletResponse;14

15 importlin.db.DBServlet;16 importlin.entity.User;17

18 /**

19 * Servlet implementation class RegisterServlet20 */

21 /*@WebServlet("/RegisterServlet")*/

22 public class RegisterServlet extendsHttpServlet {23 private static final long serialVersionUID = 1L;24

25 /**

26 *@seeHttpServlet#HttpServlet()27 */

28 publicRegisterServlet() {29 super();30 //TODO Auto-generated constructor stub

31 }32

33 /**

34 *@seeHttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)35 */

36 protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {37 //TODO Auto-generated method stub38 //跳转到register.jsp

39 request.getRequestDispatcher("/WEB-INF/page/register.jsp").forward(request, response);40 }41

42 /**

43 *@seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)44 */

45 protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {46 //TODO Auto-generated method stub47 //contentType=”text/html;charset=UTF-8”的作用是指定服务器响应给浏览器的编码。

48 /*request.setCharacterEncoding(“UTF-8”)的作用是设置对客户端请求和数据库取值时的编码,49 * 不指定的话使用iso-8859-1。(只解决POST乱码)*/

50 request.setCharacterEncoding("UTF-8");51 response.setContentType("text/html);charset=UTF-8");52

53 System.out.println("注册的用户名是:"+request.getParameter("name"));54

55 //获取实体User中的变量,将变量插入到数据库中,完成注册

56 User user=newUser();57 //获取注册的用户名,"name"要与jsp页面中的变量名一致

58 String name=request.getParameter("name");59 //获取注册的密码

60 String password=request.getParameter("password");61 //获取注册的邮箱

62 String email=request.getParameter("email");63

64 //将获取到的注册信息放入user中

65 user.setName(name);66 user.setPassword(password);67 user.setEmail(email);68

69 try{70 //获取数据库的连接,并将user中的数据插入数据库中71 //查询当前的用户名和邮箱在数据库中是否已经被注册过

72 String sql="select id from t_users where name =? or email=?";73 DBServlet conn=newDBServlet();74 //与数据库获取连接

75 Connection connection=conn.getConn();76 //SQL语句被预编译并存储在PreparedStatement对象中

77 PreparedStatement statement=connection.prepareStatement(sql);78 //将第一个问号的name值添加进去

79 statement.setString(1, name);80 statement.setString(2, email);81 //执行sql语句

82 ResultSet rs=statement.executeQuery();83

84 //判断rs集合中是否为null,为null表示数据库中不存在重复的85 //否则存在重复数据,注册失败

86 if(rs.next())87 {88 System.out.println("注册失败,用户名或者邮箱已经存在,");89 //重新跳转到注册页面

90 request.getRequestDispatcher("/WEB-INF/page/register.jsp").forward(request, response);;91 }92 else

93 {94 String sql1="insert into t_users (name,password,email) values(?,?,?)";95 statement=connection.prepareStatement(sql1);96 statement.setString(1, name);97 statement.setString(2, password);98 statement.setString(3, email);99

100 int result=statement.executeUpdate();101 if(result==1)102 {103 System.out.println("注册成功,欢迎你:"+name);104 request.setAttribute("remind", "注册成功");105 request.getRequestDispatcher("/WEB-INF/page/register.jsp").forward(request, response);106 }107 else

108 {109 System.out.println("注册失败");110 request.getRequestDispatcher("/WEB-INF/page/register.jsp").forward(request, response);111 }112

113 }114

115 //关闭数据库连接

116 rs.close();117 statement.close();118 connection.close();119 } catch(SQLException e) {120 //TODO Auto-generated catch block

121 System.out.println("数据库连接失败");122 e.printStackTrace();123 }124

125 }126

127 }

de

4.在创建Servlet的同时,其配置文件web.xml中要对Servlet进行配置:如下图所示:

1 <?xml version="1.0" encoding="UTF-8"?>

2

3 Test1

4

5 index.html

6 index.htm

7 index.jsp

8 default.html

9 default.htm

10 default.jsp

11

12

13

14 RegisterServlet

15 lin.Servlet.RegisterServlet

16

17

18 RegisterServlet

19 /register

20

24

5.第四步:创建一个register.jsp注册页面,实现前端页面与后端数据的交互

代码如下:

1

2 pageEncoding="UTF-8"%>

3

4

5

6

7

Insert title here

8

9

10

11

${remind}

12

注册页面

13

18

19 登录名:

密码为:

邮箱为:

22 value="注册">

23

24

25

26

6.第五步:在index.jsp中添加下面一句话,在访问该项目时,直接跳转到注册页面:

1

2 pageEncoding="UTF-8"%>

3

4

5

6

7

Insert title here

8

9

10

11

12

7.第六步:进行测试啦啦啦------(运行tomcat,在浏览器中输入:http://localhost:8080/Test1)

点击回车:

输入用户名、密码、邮箱(注意:本次的代码并没有对用户名、密码、邮箱进行规范约束)

点击注册,浏览器页面的变化如下所示:

后端控制台输出如下所示:

8.对于用户的注册功能已经使用Servlet完成了实现-----

OK,,,,,,,,,

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。