JavaWeb 实现简单登陆、注册功能

1.首先建立一个简单的动态Javaweb项目html

 

2.而后手动创建文件目录:java

 

 

项目建立好以后,在src下建几个包:mysql

controller:控制器,负责转发请求,对请求进行处理,主要存放servlet;web

dao:数据库管理,主要是写数据库操做方法;sql

model:存放实体类;数据库

service:业务逻辑的处理;服务器

util:存放工具类,在这里我主要是把数据库加载驱动和创立链接、关闭链接封装成了一个静态类。app

ps:别忘了在lib文件夹里放入这个jar包,用以链接数据库。jsp

3.下面直接贴上对应的代码:ide

 src代码:

 1 package com.maike.controller;
 2 
 3 import java.io.IOException;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.annotation.WebServlet;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 
10 import com.maike.service.UserService;
11 import com.maike.service.UserServiceImpl;
12 
13 /**
14  * Servlet implementation class RegisterServlet
15  */
16 @WebServlet("/RegisterServlet")
17 public class RegisterServlet extends HttpServlet {
18     UserService userService = new UserServiceImpl();
19     private static final long serialVersionUID = 1L;
20        
21     /**
22      * @see HttpServlet#HttpServlet()
23      */
24     public RegisterServlet() {
25         super();
26         // TODO Auto-generated constructor stub
27     }
28 
29     /**
30      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
31      */
32     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
33         // TODO Auto-generated method stub
34         response.getWriter().append("Served at: ").append(request.getContextPath());
35     }
36 
37     /**
38      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
39      */
40     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
41         // TODO Auto-generated method stub
42         request.setCharacterEncoding("utf-8");
43         String userName = request.getParameter("userName");
44         String userPwd = request.getParameter("userPwd");
45         String userRePwd = request.getParameter("userRePwd");
46         
47         int k = userService.insertUser(userName,userPwd,userRePwd);
48         
49         if(k > 0) {
50             request.getRequestDispatcher("login.jsp").forward(request, response);
51         }else {
52             request.getRequestDispatcher("register.jsp").forward(request, response);
53         }
54     }
55 
56 }
RegisterServlet
 1 package com.maike.controller;
 2 
 3 import java.io.IOException;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.annotation.WebServlet;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 
10 import com.maike.service.UserService;
11 import com.maike.service.UserServiceImpl;
12 
13 /**
14  * Servlet implementation class LoginServlet
15  */
16 @WebServlet("/LoginServlet")
17 public class LoginServlet extends HttpServlet {
18     UserService userService = new UserServiceImpl();
19     private static final long serialVersionUID = 1L;
20        
21     /**
22      * @see HttpServlet#HttpServlet()
23      */
24     public LoginServlet() {
25         super();
26         // TODO Auto-generated constructor stub
27     }
28 
29     /**
30      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
31      */
32     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
33         // TODO Auto-generated method stub
34         response.getWriter().append("Served at: ").append(request.getContextPath());
35     }
36 
37     /**
38      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
39      */
40     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
41         // TODO Auto-generated method stub
42         request.setCharacterEncoding("utf-8");
43         String userName = request.getParameter("userName");
44         String uesrPwd = request.getParameter("userPwd");
45         
46         int k = userService.judgeLogin(userName,uesrPwd);
47         if(k > 0) {
48             request.getRequestDispatcher("success.jsp").forward(request, response);
49         }else {
50             request.getRequestDispatcher("login.jsp").forward(request, response);
51         }
52     }
53 
54 }
LoginServlet
 1 package com.maike.dao;
 2 
 3 import com.maike.model.User;
 4 
 5 public interface UserDao {
 6     
 7     int insert(String userName,String userPwd);
 8     User selectByName(String userName);
 9 
10 }
UserDao
 1 package com.maike.dao;
 2 
 3 import java.sql.Connection;
 4 import java.sql.PreparedStatement;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 
 8 import com.maike.model.User;
 9 import com.maike.util.ConnectionUtil;
10 
11 public class UserDaoImpl implements UserDao {
12     Connection con = null;
13     PreparedStatement pt = null;
14     ResultSet rs = null;
15     String sql;
16 
17     @Override
18     public int insert(String userName, String userPwd) {
19         // TODO Auto-generated method stub
20         int k = 0;
21         sql = "insert into user value(null,?,?)";
22         try {
23             con = ConnectionUtil.getConnection();
24             pt = con.prepareStatement(sql);
25             pt.setString(1, userName);
26             pt.setString(2, userPwd);
27             k = pt.executeUpdate();
28         } catch (SQLException e) {
29             // TODO Auto-generated catch block
30             e.printStackTrace();
31         }finally {
32             ConnectionUtil.closeRe(con, pt);
33         }
34         return k;
35     }
36 
37     @Override
38     public User selectByName(String userName) {
39         // TODO Auto-generated method stub
40         sql = "select * from user where user_name = ?";
41         User user = new User();
42         try {
43             con = ConnectionUtil.getConnection();
44             pt = con.prepareStatement(sql);
45             pt.setString(1, userName);
46             rs = pt.executeQuery();
47             
48             while(rs.next()) {
49                 user.setUserId(rs.getInt("user_id"));
50                 user.setUserName(rs.getString("user_name"));
51                 user.setUserPwd(rs.getString("user_pwd"));
52             }
53         } catch (SQLException e) {
54             // TODO Auto-generated catch block
55             e.printStackTrace();
56         }finally {
57             ConnectionUtil.closeRe(con, pt, rs);
58         }
59         return user;
60     }
61 
62 }
UserDaoImpl
 1 package com.maike.model;
 2 
 3 public class User {
 4     
 5     private int userId;
 6     
 7     private String userName;
 8     
 9     private String userPwd;
10 
11     public int getUserId() {
12         return userId;
13     }
14 
15     public void setUserId(int userId) {
16         this.userId = userId;
17     }
18 
19     public String getUserName() {
20         return userName;
21     }
22 
23     public void setUserName(String userName) {
24         this.userName = userName;
25     }
26 
27     public String getUserPwd() {
28         return userPwd;
29     }
30 
31     public void setUserPwd(String userPwd) {
32         this.userPwd = userPwd;
33     }
34 
35     @Override
36     public String toString() {
37         return "User [userId=" + userId + ", userName=" + userName + ", userPwd=" + userPwd + "]";
38     }
39 
40 }
User
1 package com.maike.service;
2 
3 public interface UserService {
4     
5     int insertUser(String userName,String userPwd,String userRePwd);
6     int judgeLogin(String userName,String userPwd);
7 
8 }
UserService
 1 package com.maike.service;
 2 
 3 import com.maike.dao.UserDao;
 4 import com.maike.dao.UserDaoImpl;
 5 import com.maike.model.User;
 6 
 7 public class UserServiceImpl implements UserService {
 8     UserDao userDao = new UserDaoImpl();
 9 
10     /**
11      * insertUser: 实现注册功能.<br/>
12      */
13     @Override
14     public int insertUser(String userName, String userPwd, String userRePwd) {
15         // TODO Auto-generated method stub
16         int k = 0;
17         if(userName == "" || userName == null || userPwd == "" || userRePwd == null) {
18             return k;
19         }
20         if(!userPwd.equals(userRePwd)) {
21             return k;
22         }
23         
24         k = userDao.insert(userName,userPwd);
25         
26         return k;
27     }
28 
29     /**
30      * judgeLogin:登陆判断 .<br/>
31      */
32     @Override
33     public int judgeLogin(String userName, String userPwd) {
34         // TODO Auto-generated method stub
35         int k = 0;
36         if(userName == "" || userName == null || userPwd == ""|| userPwd == null) {
37             return k;
38         }
39         User user = userDao.selectByName(userName);
40         
41         if(!userPwd.equals(user.getUserPwd())) {
42             k = 0;
43         }else {
44             k = 1;
45         }
46         return k;
47     }
48 
49 }
UserServiceImpl
 1 package com.maike.util;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 
 9 public class ConnectionUtil {
10     private static String url = "jdbc:mysql://127.0.0.1/nanfeng?characterEncoding=utf8&useSSL=true";
11     private static String rootName = "root";
12     private static String rootPwd = "zz201608";
13     
14     private ConnectionUtil() {};
15     
16     static {
17         try {
18             /*加载驱动*/
19             Class.forName("com.mysql.jdbc.Driver");
20         } catch (ClassNotFoundException e) {
21             // TODO Auto-generated catch block
22             e.printStackTrace();
23         }
24     }
25     
26     /**
27      * getConnection:建立链接.<br/>
28      * @return
29      * @throws SQLException
30      */
31     public static Connection getConnection() throws SQLException {
32         return DriverManager.getConnection(url,rootName,rootPwd);
33     }
34     
35     /**
36      * closeRe:关闭链接.<br/>
37      * @param con
38      * @param pt
39      * @param rs
40      */
41     public static void closeRe(Connection con,PreparedStatement pt,ResultSet rs) {
42         if(rs != null) {
43             try {
44                 rs.close();
45             } catch (SQLException e) {
46                 // TODO Auto-generated catch block
47                 e.printStackTrace();
48             }finally {
49                 if(pt != null) {
50                     try {
51                         pt.close();
52                     } catch (SQLException e) {
53                         // TODO Auto-generated catch block
54                         e.printStackTrace();
55                     }finally{
56                         if(con != null) {
57                             try {
58                                 con.close();
59                             } catch (SQLException e) {
60                                 // TODO Auto-generated catch block
61                                 e.printStackTrace();
62                             }
63                         }
64                     }
65                 }
66             }
67         }
68     }
69     
70     /**
71      * closeRe:关闭链接.<br/>
72      * @param con
73      * @param pt
74      */
75     public static void closeRe(Connection con,PreparedStatement pt) {
76         if(pt != null) {
77             try {
78                 pt.close();
79             } catch (SQLException e) {
80                 // TODO Auto-generated catch block
81                 e.printStackTrace();
82             }finally {
83                 if(con != null) {
84                     try {
85                         con.close();
86                     } catch (SQLException e) {
87                         // TODO Auto-generated catch block
88                         e.printStackTrace();
89                     }
90                 }
91             }
92         }
93     }
94 
95 }
ConnectionUtil

jsp页面代码:

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7 <title>登陆页面</title>
 8 </head>
 9 <body>
10   <br><br><br>
11   <h3 align = "center">登陆页面</h3>
12   <hr>
13     <form align = "center" action="LoginServlet" method="post">
14         <table align = "center" border="0">
15             <tr><td>用户名</td><td><input type="text" name="userName" ></td></tr>
16             <tr><td>密码</td><td><input type="password" name="userPwd" ></td></tr>
17             <tr><td align = "center"><input type="submit" value = "登陆" style="color:blue" ></td><td align = "right"><button><a href = "register.jsp" style="color:blue" >注册</a></button></td></tr>
18         </table>
19     
20     </form>
21 
22 </body>
23 </html>
login.jsp
 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7 <title>注册页面</title>
 8 </head>
 9 <body>
10   <br><br><br>
11   <h3 align = "center">注册页面</h3>
12   <hr>
13     <form align = "center" action="RegisterServlet" method="post">
14         <table align = "center" border="0">
15             <tr><td>用户名</td><td><input type="text" name="userName" ></td></tr>
16             <tr><td>密码</td><td><input type="password" name="userPwd" ></td></tr>
17             <tr><td>确认密码</td><td><input type="password" name="userRePwd" ></td></tr>
18             <tr><td align = "center" colspan="2"><input type="submit" value = "注册" style="color:blue" ></td></tr>
19         </table>
20     
21     </form>
22 </body>
23 </html>
register.jsp

建立数据库:

1 CREATE TABLE nanfeng.`user` (
2     user_id INT NOT NULL AUTO_INCREMENT,
3     user_name varchar(100) NULL,
4     user_pwd varchar(100) NULL,
5     CONSTRAINT user_pk PRIMARY KEY (user_id)
6 )
7 ENGINE=InnoDB
8 DEFAULT CHARSET=utf8
9 COLLATE=utf8_general_ci;

4.最后,启动服务器,界面效果出来了