基于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>