zoukankan      html  css  js  c++  java
  • 关于MVC模式的登录注册

    最近初学jsp,顺便编写了一个基于MVC开发模式的登录注册

    1、util包用于连接数据库操作

     1 package com.util;
     2 
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 import java.sql.SQLException;
     6 
     7 public class DbUtil {
     8     
     9     private String url="jdbc:mysql://localhost:3306/test";
    10     private String user="root";
    11     private String password="root";
    12     private String driver="com.mysql.jdbc.Driver";
    13     
    14     public Connection getCon() throws Exception{
    15         Class.forName(driver);
    16         Connection con=DriverManager.getConnection(url, user, password);
    17         return con;
    18     }
    19     
    20     public static void getClose(Connection con) throws SQLException{
    21         if(con!=null){
    22             con.close();
    23         }
    24     }
    25     
    26     /*public static void main(String[] args) {
    27         DbUtil db=new DbUtil();
    28         try {
    29             db.getCon();
    30             System.out.println("测试连接数据库,连接成功");
    31         } catch (Exception e) {
    32             // TODO Auto-generated catch block
    33             e.printStackTrace();
    34             System.out.println("测试连接数据库,连接失败");
    35         }
    36         
    37     }*/
    38 }
    View Code

    2、model层对于成员变量的get set方法控制

     1 package com.model;
     2 
     3 import java.sql.DriverManager;
     4 
     5 import com.mysql.jdbc.Connection;
     6 import com.mysql.jdbc.PreparedStatement;
     7 
     8 public class User {
     9 
    10     private int id;
    11     private String username;
    12     private String password;
    13     
    14     
    15     public User() {
    16         super();
    17     }
    18     public User(String username, String password) {
    19         super();
    20         this.username = username;
    21         this.password = password;
    22     }
    23     public int getId() {
    24         return id;
    25     }
    26     public void setId(int id) {
    27         this.id = id;
    28     }
    29     public String getUsername() {
    30         return username;
    31     }
    32     public void setUsername(String username) {
    33         this.username = username;
    34     }
    35     public String getPassword() {
    36         return password;
    37     }
    38     public void setPassword(String password) {
    39         this.password = password;
    40     }
    41     
    42 
    43 }
    View Code

    3.dao层用于操作数据库的增删改查方法

      1 package com.dao;
      2 
      3 import java.sql.Connection;
      4 import java.sql.PreparedStatement;
      5 import java.sql.ResultSet;
      6 import java.sql.SQLException;
      7 
      8 
      9 import com.ningmeng.model.User;
     10 
     11 public class UserDao {
     12     
     13     public User login(Connection con,User user) throws SQLException{
     14         User resultUser=null;
     15         String sql="select * from user where name=? and password=?";
     16         PreparedStatement ps=con.prepareStatement(sql);//
     17         ps.setString(1, user.getUsername());
     18         ps.setString(2, user.getPassword());
     19         ResultSet rs=ps.executeQuery();
     20         if(rs.next()){
     21             resultUser=new User();
     22             resultUser.setUsername(rs.getString("name"));
     23             resultUser.setPassword(rs.getString("password"));
     24         }
     25         return resultUser;
     26     }
     27     public boolean insert(Connection con,User user)
     28     {
     29         String sql = "INSERT INTO user(name,password) VALUES (?,?)";  //添加的SQL语句
     30          boolean flag=false;  
     31          try{  
     32              PreparedStatement psta=con.prepareStatement(sql);// 
     33              psta.setString(1, user.getUsername());  
     34              psta.setString(2, user.getPassword());  
     35              flag=psta.executeUpdate()>0;
     36          }catch(Exception e){  
     37              e.printStackTrace();  
     38          }
     39              try {
     40                 con.close();
     41             } catch (SQLException e) {
     42                 
     43                 e.printStackTrace();
     44             }
     45              return flag;      
     46     }
     47     
     48     //通过id查找  
     49     public User selectById(Connection con,int id){  
     50          
     51         PreparedStatement psta=null;  
     52         ResultSet rs=null;  
     53         User user=null;  
     54         String sql="select * from user where id=?";  
     55         try{  
     56             psta=con.prepareStatement(sql);  
     57             psta.setInt(1, id);  
     58             rs=psta.executeQuery();  
     59             if(rs.next()){  
     60                 user=new User();  
     61                 user.setId(rs.getInt(1));  
     62                 user.setUsername(rs.getString(2));  
     63                 user.setPassword(rs.getString(3));  
     64 
     65             }  
     66         }catch(Exception e){  
     67             e.printStackTrace();  
     68         } 
     69             try{  
     70                 con.close();  
     71             }catch(Exception e){  
     72                 e.printStackTrace();  
     73             }  
     74             return user;    
     75     }
     76   //更新方法(修改数据)(改)  
     77     public boolean update(Connection con,User user){  
     78         PreparedStatement psta=null;  
     79         String sql="update user set name=?,password=? where id=?";  
     80         boolean flag=false;  
     81         try{  
     82             psta=con.prepareStatement(sql);  
     83             psta.setString(1, user.getUsername());  
     84             psta.setString(2, user.getPassword());   
     85             psta.setInt(3,user.getId());  
     86             flag=psta.executeUpdate()>0;  
     87         }catch(Exception e){  
     88             e.printStackTrace();  
     89         }
     90             try{  
     91                 con.close();  
     92             }catch(Exception e){  
     93                 e.printStackTrace();  
     94             }  
     95             return flag;  
     96     } 
     97     
     98     public boolean deleteAdmin(Connection con,int id){  //删除
     99         String sql = "delete from user where id = ?";  //删除的SQL语句,根据ID删除
    100         try {
    101             PreparedStatement pst = con.prepareStatement(sql);
    102             pst.setInt(1, id);
    103             int count = pst.executeUpdate();
    104             pst.close();
    105             return count>0?true:false;  //是否删除的判断
    106         } catch (SQLException e) {
    107             e.printStackTrace();
    108         }
    109         return false;
    110     }
    111     
    112 }
    View Code

    4、Servlet控制连接前台界面

     1 package com.web;
     2 
     3 import java.io.IOException;
     4 import java.sql.Connection;
     5 
     6 import javax.servlet.ServletException;
     7 import javax.servlet.http.HttpServlet;
     8 import javax.servlet.http.HttpServletRequest;
     9 import javax.servlet.http.HttpServletResponse;
    10 import javax.servlet.http.HttpSession;
    11 
    12 import com.ningmeng.dao.UserDao;
    13 import com.ningmeng.model.User;
    14 import com.ningmeng.util.DbUtil;
    15 
    16 public class LoginServlet extends HttpServlet{
    17 
    18     DbUtil db=new DbUtil();
    19     UserDao userDao=new UserDao();
    20     /**
    21      * 
    22      */
    23     private static final long serialVersionUID = 1L;
    24 
    25     @Override
    26     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    27         this.doPost(request, response);
    28     }
    29 
    30     @Override
    31     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    32         String username=request.getParameter("username");
    33         String password=request.getParameter("password");
    34         Connection con=null;
    35         try {
    36             User user=new User(username,password);
    37             con=db.getCon();
    38             User currentUser=userDao.login(con, user);
    39             if(currentUser==null){
    40                 //System.out.println("no");
    41                 request.setAttribute("error", "用户名或者密码错误");
    42                 request.setAttribute("username", username);
    43                 request.setAttribute("password", password);
    44                 request.getRequestDispatcher("login.jsp").forward(request, response);
    45             }else{
    46                 //System.out.println("yes");
    47                 HttpSession session=request.getSession();
    48                 session.setAttribute("currentUser",currentUser);
    49                 response.sendRedirect("main.jsp");
    50             }
    51         } catch (Exception e) {
    52             // TODO Auto-generated catch block
    53             e.printStackTrace();
    54         }
    55         
    56     }
    57     
    58     
    59 }
    LoginServlet
     1 package com.web;
     2 
     3 import java.io.IOException;
     4 import java.sql.Connection;
     5 
     6 import javax.servlet.ServletException;
     7 import javax.servlet.annotation.WebServlet;
     8 import javax.servlet.http.HttpServlet;
     9 import javax.servlet.http.HttpServletRequest;
    10 import javax.servlet.http.HttpServletResponse;
    11 
    12 import com.ningmeng.dao.UserDao;
    13 import com.ningmeng.model.User;
    14 import com.ningmeng.util.DbUtil;
    15 
    16 /**
    17  * Servlet implementation class RegistServlet
    18  */
    19 @WebServlet("/RegistServlet")
    20 public class RegistServlet extends HttpServlet {
    21     private static final long serialVersionUID = 1L;
    22        
    23     DbUtil db=new DbUtil();
    24     UserDao userDao=new UserDao();
    25     /**
    26      * @see HttpServlet#HttpServlet()
    27      */
    28     public RegistServlet() {
    29         super();
    30         // TODO Auto-generated constructor stub
    31     }
    32 
    33     /**
    34      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    35      */
    36     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    37         String username=request.getParameter("username");
    38         String password=request.getParameter("password");
    39         Connection con=null;
    40         
    41         User user=new User(username,password);
    42         try {
    43             con=db.getCon();
    44         } catch (Exception e) {
    45             
    46             e.printStackTrace();
    47         }
    48         boolean current=userDao.insert(con, user);
    49         System.out.print(current);
    50         System.out.print(user.getUsername());
    51         if(current){
    52              request.setAttribute("error", "注册成功");
    53             
    54         }else{
    55              request.setAttribute("error", "注册失败");
    56              request.getRequestDispatcher("Regist.jsp").forward(request, response);
    57         }
    58         
    59     }
    60 
    61     /**
    62      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    63      */
    64     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    65         // TODO Auto-generated method stub
    66         doGet(request, response);
    67     }
    68 
    69 }
    RegistServlet

    5、修改web.xml对应的servlet

    6、前台页面展示

     1 <%@ page language="java" contentType="text/html; charset=gbk"
     2     pageEncoding="gbk"%>
     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=gbk">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10 <form action="login" method="post">
    11      <table>
    12          <tr>
    13              <th colspan="2">登录界面</th>
    14          </tr>
    15          <tr>
    16              <td>账号</td>
    17              <td><input type="text" id="username" name="username" value="${username}"></td>
    18          </tr>
    19          <tr>
    20              <td>密码:</td>
    21              <td><input type="text" id="password" name="password" value="${password}"></td>
    22          </tr>
    23          <tr>
    24              <td><input type="submit" value="提交"></td>
    25              <td><font color="red">${error}</font></td>
    26          </tr>
    27      </table>
    28  </form>
    29  </body>
    30 </html>
    login
     1 <%@ page language="java" contentType="text/html; charset=gbk"
     2     pageEncoding="gbk"%>
     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=gbk">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10 <form action="login" method="post">
    11      <table>
    12          <tr>
    13              <th colspan="2">注册界面</th>
    14          </tr>
    15          <tr>
    16              <td>账号</td>
    17              <td><input type="text" id="username" name="username" ></td>
    18          </tr>
    19          <tr>
    20              <td>密码:</td>
    21              <td><input type="text" id="password" name="password" ></td>
    22          </tr>
    23          <tr>
    24              <td><input type="submit" value="提交"></td>
    25              <td><font color="red">${error}</font></td>
    26          </tr>
    27      </table>
    28  </form>
    29  </body>
    30 </html>
    regist
     1 <%@ page language="java" contentType="text/html; charset=gbk"
     2     pageEncoding="gbk"%>
     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=gbk">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10  <p>登录成功</p>
    11  当前用户:${currentUser.username}<br/>
    12  当前密码:${currentUser.password}<br/>
    13  </body>
    14 </html>
    main
  • 相关阅读:
    变量定义和声明的差别(整理)
    堆栈指针理解
    HDU 4349 Xiao Ming&#39;s Hope
    iOS 8中CLLocationManager及MKMapView showUserLocation失败的解决的方法
    Ant命令行操作
    linux awk命令详细使用方法
    mysql 修改[取消]timestamp的自动更新
    cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第六步---炮台&amp;点击炮台加入英雄&amp;英雄升级
    SendMessage、PostMessage原理
    poj 2104 K-th Number 主席树+超级详细解释
  • 原文地址:https://www.cnblogs.com/senfanxie/p/7772204.html
Copyright © 2011-2022 走看看