基于servlet及jsp的登陆注册mvc框架

一共建了5个包,分别是

com.etc.dao;

com.etc.dao.impl;

com.etc.model;

com.etc.service;

com.etc.servlet

DBConnectionFactory
 1 package com.etc.dao;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.SQLException;
 6 
 7 public class DBConnectionFactory {
 8 
 9     
10     public static Connection getConnection()
11     {
12         Connection conn = null;
13         try {
14             Class.forName("com.mysql.jdbc.Driver");
15             try {
16                 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/kaijie", "root", "123");
17                 
18                 
19             } catch (SQLException e) {
20                 // TODO Auto-generated catch block
21                 e.printStackTrace();
22             }
23         } catch (ClassNotFoundException e) {
24             // TODO Auto-generated catch block
25             e.printStackTrace();
26         }
27         return conn;
28     }
29 }
UserDaoImpl
 1 package com.etc.dao.impl;
 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.etc.dao.DBConnectionFactory;
 9 import com.etc.model.User;
10 
11 public class UserDaoImpl {
12 
13     Connection conn = DBConnectionFactory.getConnection();
14     
15     public User getUserByUname(String uname)
16     {
17         User u = null;
18         String sql = "select * from users where username=?";
19         try {
20             PreparedStatement pstmt = conn.prepareStatement(sql);
21             pstmt.setString(1, uname);
22             ResultSet rs = pstmt.executeQuery();
23             while(rs.next())
24             {
25                 u = new User(rs.getString(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5), rs.getString(6));
26             }
27         } catch (SQLException e) {
28             // TODO Auto-generated catch block
29             e.printStackTrace();
30         }
31         return u;
32     }
33     
34     public void insert(User user) 
35     {
36         String sql = "insert into users values(?,?,?,?,?,?)";
37         try {
38             PreparedStatement pstmt = conn.prepareStatement(sql);
39             pstmt.setString(1, user.getUsername());
40             pstmt.setString(2, user.getPassword());
41             pstmt.setString(3, user.getSex());
42             pstmt.setInt(4, user.getAge());
43             pstmt.setString(5, user.getAddress());
44             pstmt.setString(6, user.getPhone());
45             pstmt.executeUpdate();
46         } catch (SQLException e) {
47             // TODO Auto-generated catch block
48             e.printStackTrace();
49         }
50     }
51     
52     public User getUserByUnamePwd(String uname, String upwd)
53     {
54         User u = null;
55         String sql = "select * from users where username=? and password = ?";
56         try {
57             PreparedStatement pstmt = conn.prepareStatement(sql);
58             pstmt.setString(1, uname);
59             pstmt.setString(2, upwd);
60             ResultSet rs = pstmt.executeQuery();
61             while(rs.next())
62             {
63                 u = new User(rs.getString(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5), rs.getString(6));
64             }
65         } catch (SQLException e) {
66             // TODO Auto-generated catch block
67             e.printStackTrace();
68         }
69         return u;
70     }
71 }
User
 1 package com.etc.model;
 2 
 3 public class User {
 4 
 5     private String username;
 6     private String password;
 7     private String sex;
 8     private int age;
 9     private String address;
10     private String phone;
11     public String getUsername() {
12         return username;
13     }
14     public void setUsername(String username) {
15         this.username = username;
16     }
17     public String getPassword() {
18         return password;
19     }
20     public void setPassword(String password) {
21         this.password = password;
22     }
23     public String getSex() {
24         return sex;
25     }
26     public void setSex(String sex) {
27         this.sex = sex;
28     }
29     public int getAge() {
30         return age;
31     }
32     public void setAge(int age) {
33         this.age = age;
34     }
35     public String getAddress() {
36         return address;
37     }
38     public void setAddress(String address) {
39         this.address = address;
40     }
41     public String getPhone() {
42         return phone;
43     }
44     public void setPhone(String phone) {
45         this.phone = phone;
46     }
47     public User(String username, String password, String sex, int age,
48             String address, String phone) {
49         super();
50         this.username = username;
51         this.password = password;
52         this.sex = sex;
53         this.age = age;
54         this.address = address;
55         this.phone = phone;
56     }
57     public User() {
58         super();
59     }
60     public User(String username, String password) {
61         super();
62         this.username = username;
63         this.password = password;
64     }
65     
66     
67 }
UserService
 1 package com.etc.service;
 2 
 3 import com.etc.dao.impl.UserDaoImpl;
 4 import com.etc.model.User;
 5 
 6 public class UserService {
 7 
 8     UserDaoImpl udi = new UserDaoImpl();
 9     public boolean register(User u)
10     {
11         User user = udi.getUserByUname(u.getUsername());
12         if (user == null) {
13             udi.insert(u);
14             return true;
15         } else {
16             return false;
17         }
18     }
19     
20     public boolean login(User u)
21     {
22         User u1 = udi.getUserByUname(u.getUsername());
23         User u2 = udi.getUserByUnamePwd(u.getUsername(), u.getPassword());
24         if(u1 == null)
25         {
26             return false;//该用户名不存在
27         }
28         else
29         {
30             if(u2 == null)
31             {
32                 return false;//密码错误
33             }
34             else
35             {
36                 return true;
37             }
38         }
39     }
40 }
LoginServlet
 1 package com.etc.servlet;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.ServletException;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 
10 import com.etc.model.User;
11 import com.etc.service.UserService;
12 
13 public class LoginServlet extends HttpServlet {
14 
15     @Override
16     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
17             throws ServletException, IOException {
18         // TODO Auto-generated method stub
19         doPost(req, resp);
20     }
21     
22     @Override
23     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
24             throws ServletException, IOException {
25         // TODO Auto-generated method stub
26         resp.setContentType("text/html,charset=UTF-8");
27         req.setCharacterEncoding("UTF-8");
28         
29         String uname = req.getParameter("username");
30         String upwd = req.getParameter("password");
31         User u = new User(uname, upwd);
32         UserService us = new UserService();
33         boolean flag = us.login(u);
34         if(flag)
35         {
36             req.getRequestDispatcher("welcome.jsp").forward(req, resp);
37         }
38         else
39         {
40             req.setAttribute("error", "密码错误");
41             //resp.sendRedirect("login.jsp");
42             req.getRequestDispatcher("login.jsp").forward(req, resp);
43             
44         }
45     }
46 }
RegisterServlet
 1 package com.etc.servlet;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.ServletException;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 
10 import com.etc.model.User;
11 import com.etc.service.UserService;
12 
13 public class RegisterServlet extends HttpServlet {
14 
15     @Override
16     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
17             throws ServletException, IOException {
18         // TODO Auto-generated method stub
19         doPost(req, resp);
20     }
21     
22     @Override
23     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
24             throws ServletException, IOException {
25         // TODO Auto-generated method stub
26         resp.setContentType("text/html,charset=UTF-8");
27         req.setCharacterEncoding("UTF-8");
28         
29         String uname = req.getParameter("username");
30         String upwd = req.getParameter("password");
31         String usex = req.getParameter("sex");
32 //System.out.println(usex);
33         int uage = Integer.parseInt(req.getParameter("age"));
34         String uaddr = req.getParameter("address");
35         String uphone = req.getParameter("phone");
36         
37         User u = new User(uname, upwd, usex, uage, uaddr, uphone);
38         
39         UserService us = new UserService();
40         boolean flag = us.register(u);
41         if(flag)
42         {
43             resp.sendRedirect("login.jsp");
44         }
45         else
46         {
47 //System.out.println("该用户名已存在,请重新注册!");
48             req.setAttribute("error", "用户名已存在");
49             req.getRequestDispatcher("register.jsp").forward(req, resp);
50         }
51     }
52 }
login.jsp
 1 <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6 
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11     
12     <title>登录页面</title>
13     
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">    
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22 
23   </head>
24   
25   <body>
26   <% String info = (String) request.getAttribute("error");  
27 if(info!=null){
28 out.println("<span style='font-size:20px;color:red'>"+info+"</span>");
29 }%>
30   <h3 align="center">登录</h3>
31     <hr>
32     <form action="login" method="post">
33     <table align="center"  border="1">
34         <tr>
35             <td>用户名:</td>
36             <td><input type="text" name = "username"/></td>
37         </tr>
38          <tr>
39             <td>密码:</td>
40             <td><input type="password" name = "password"/></td>
41         </tr>
42         <tr>
43             <td colspan="2">
44                 <input type="submit" name="submit" value="登录"/>
45                 <input type="reset" name="reset" value="重置"/>
46                 <a href = "register.jsp" name="register">注册</a>
47             </td>
48         </tr>
49     </table>
50     </form>
51   </body>
52 </html>
register.jsp
 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6 
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11     
12     <title>注册页面</title>
13     <meta http-equiv="pragma" content="no-cache">
14     <meta http-equiv="cache-control" content="no-cache">
15     <meta http-equiv="expires" content="0">    
16     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
17     <meta http-equiv="description" content="This is my page">
18     <!--
19     <link rel="stylesheet" type="text/css" href="styles.css">
20     -->
21   </head>
22   
23   <body>
24     <% String info = (String) request.getAttribute("error");  
25 if(info!=null){
26 out.println("<span style='font-size:20px;color:red'>"+info+"</span>");
27 }%>
28     
29     <h3 align="center">注册</h3>
30     <hr>
31     <form action="register" method="post">
32     <table align="center"  border="1">
33         <tr>
34             <td>用户名:</td>
35             <td><input type="text" name = "username"/></td>
36         </tr>
37          <tr>
38             <td>密码:</td>
39             <td><input type="password" name = "password"/></td>
40         </tr>
41         <tr>
42             <td>性别:</td>
43             <td>
44                 <input type="radio" name = "sex" checked="checked" value="男"/>45                 <input type="radio" name = "sex" value="女"/>46             </td>
47         </tr>
48         <tr>
49             <td>年龄:</td>
50             <td><input type="text" name = "age"/></td>
51         </tr>
52         <tr>
53             <td>家庭住址:</td>
54             <td><input type="text" name = "address"/></td>
55         </tr>
56         <tr>
57             <td>联系电话:</td>
58             <td><input type="text" name = "phone"/></td>
59         </tr>
60         <tr>
61             <td colspan="2" align="center">
62                 <input type="submit" name="submit" value="注册"/>
63                 <input type="reset" name="reset" value="重置"/>         
64             </td>
65         </tr>
66     </table>
67     </form>
68  </body>
69 </html>
welcome.jsp
 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6 
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11     
12     <title>欢迎页面</title>
13     
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">    
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22 
23   </head>
24   
25   <body>
26     欢迎您!<%=request.getParameter("username") %><br>
27   </body>
28 </html>
web.xml
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5" 
 3     xmlns="http://java.sun.com/xml/ns/javaee" 
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 6     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 7     
 8     <servlet>
 9         <servlet-name>RegisterServlet</servlet-name>
10         <servlet-class>com.etc.servlet.RegisterServlet</servlet-class>
11     </servlet>
12     
13     <servlet-mapping>
14         <servlet-name>RegisterServlet</servlet-name>
15         <url-pattern>/register</url-pattern>
16     </servlet-mapping>
17     
18     <servlet>
19         <servlet-name>LoginServlet</servlet-name>
20         <servlet-class>com.etc.servlet.LoginServlet</servlet-class>
21     </servlet>
22     
23     <servlet-mapping>
24         <servlet-name>LoginServlet</servlet-name>
25         <url-pattern>/login</url-pattern>
26     </servlet-mapping>
27 </web-app>
原文地址:https://www.cnblogs.com/dhg1003/p/2727694.html