servlet-mysql实现简单用户登录注册

Posted feifei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet-mysql实现简单用户登录注册相关的知识,希望对你有一定的参考价值。

环境:IDEA Maven

效果截图:

 

 

项目结构:

类说明:

ConnectionUtil:负责数据库连接和释放

UserDao:数据库增删改查操作

User:用户Bean,只用注册和登录的话可以不要

UserServlet:Servlet,控制页面跳转

前端就不放了大同小异

  1 import cn.flyuz.pan.entity.User;
  2 import cn.flyuz.pan.util.Base;
  3 import cn.flyuz.pan.util.ConnectionUtil;
  4 
  5 import java.sql.Connection;
  6 import java.sql.PreparedStatement;
  7 import java.sql.ResultSet;
  8 import java.sql.SQLException;
  9 import java.util.ArrayList;
 10 import java.util.List;
 11 
 12 public class UserDao {
 13     private Connection getConn() {
 14         ConnectionUtil connectionUtil = new ConnectionUtil();
 15         return connectionUtil.getConn();
 16     }
 17     public boolean login(String user, String pw) {
 18         Connection conn = getConn();
 19         String sql = "select * from login where user=? and pw=?";
 20 
 21         try {
 22             PreparedStatement ps =conn.prepareStatement(sql);
 23             ps.setString(1,user);
 24             ps.setString(2,pw);
 25             ResultSet rs = ps.executeQuery();
 26             if (rs.next()){
 27                 ps.close();
 28                 rs.close();
 29                 return true;
 30             }
 31         } catch (SQLException e) {
 32             e.printStackTrace();
 33         }
 34         return false;
 35     }
 36 
 37     public String reg(String user, String pw) {
 38         Connection conn = getConn();
 39         String sql1= "select * from login where user = ?";
 40         String sql = "insert into login(user,pw) values (?,?)";
 41 
 42         try {
 43             PreparedStatement pss = conn.prepareStatement(sql1);
 44             pss.setString(1,user);
 45             ResultSet rs = pss.executeQuery();
 46             if (!rs.next()){
 47                 PreparedStatement ps = conn.prepareStatement(sql);
 48                 ps.setString(1,user);
 49                 ps.setString(2,pw);
 50                 ps.executeUpdate();
 51                 return Base.registerSuccess;
 52             }else{
 53                 return Base.registerFalse;
 54             }
 55         } catch (SQLException e) {
 56             e.printStackTrace();
 57         }
 58         return Base.registerFalse;
 59     }
 60 
 61     public void del(String user) {
 62         Connection conn = getConn(); //获取连接
 63         String sql = "delete from login where user = ?";//sql语句
 64         try {
 65             PreparedStatement ps = conn.prepareStatement(sql);
 66             ps.setString(1,user);
 67             ps.executeUpdate();
 68         } catch (SQLException e) {
 69             e.printStackTrace();
 70         }
 71     }
 72 //    public List<User> getAll() {
 73 //        Connection conn = getConn();
 74 //        String sql = "select * from login";
 75 //        try {
 76 //            PreparedStatement ps = conn.prepareStatement(sql);
 77 //            ResultSet rs = ps.executeQuery();
 78 //            List<User> userList = new ArrayList<>();
 79 //            while(rs.next()) {
 80 //                User user1 = new User();
 81 //                user1.setUser(rs.getString("user"));
 82 //                user1.setPw(rs.getString("pw"));
 83 //                userList.add(user1);
 84 //            }
 85 //            return userList;
 86 //        } catch (SQLException e) {
 87 //            e.printStackTrace();
 88 //        }
 89 //        return null;
 90 //    }
 91 //    public void update(String user,String pw){
 92 //        Connection conn = getConn(); //获取连接
 93 //        String sql = "update login set user = ?,pw = ? where id = ?"; //sql语句
 94 //        try {
 95 //            PreparedStatement ps = conn.prepareStatement(sql);
 96 //            //设置参数
 97 //            ps.setString(1,user);
 98 //            ps.setString(2,pw);
 99 //            ps.executeUpdate();
100 //
101 //        } catch (SQLException e) {
102 //            e.printStackTrace();
103 //        }
104 //    }
105 }
UserDao
  1 import cn.flyuz.pan.dao.UserDao;
  2 import cn.flyuz.pan.util.Base;
  3 
  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 import java.io.IOException;
 10 
 11 
 12 @WebServlet(name = "UserServlet", urlPatterns = "/loginServlet")
 13 public class UserServlet extends HttpServlet {
 14     private UserDao userDao = new UserDao();
 15 
 16     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 17         response.setContentType("text/html;charset=utf-8");
 18         request.setCharacterEncoding("utf-8");
 19         String type = request.getParameter("type");
 20 
 21         switch (type) {
 22             case "login":
 23                 login(request, response);
 24                 break;
 25             case "reg":
 26                 reg(request, response);
 27                 break;
 28 //            case "del":
 29 //                del(request, response);
 30 //                break;
 31 //            case "getAll":
 32 //                getAll(request, response);
 33 //                break;
 34         }
 35     }
 36     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 37         this.doPost(request, response);
 38     }
 39 
 40 
 41     private void login(HttpServletRequest request, HttpServletResponse response) {
 42         String user = request.getParameter("user");
 43         String pw = request.getParameter("pw");
 44 
 45         boolean user_login = userDao.login(user, pw);
 46         try {
 47             if (user_login) {
 48                 request.getRequestDispatcher("index/index.jsp").forward(request, response);
 49             } else {
 50                 String msg = "登陆失败";
 51                 request.getSession().setAttribute("msg", msg);
 52                 request.getRequestDispatcher("index/login.jsp").forward(request, response);
 53             }
 54         } catch (ServletException | IOException e) {
 55             e.printStackTrace();
 56         }
 57     }
 58 
 59     private void reg(HttpServletRequest request, HttpServletResponse response) {
 60         String user = request.getParameter("user");
 61         String pw = request.getParameter("pw");
 62 
 63         String rs = userDao.reg(user, pw);
 64         if (rs.equals(Base.registerSuccess)) {
 65             try {
 66                 request.getRequestDispatcher("index/login.jsp").forward(request, response);
 67             } catch (ServletException | IOException e) {
 68                 e.printStackTrace();
 69             }
 70         } else if (rs.equals(Base.registerFalse) || rs.equals(Base.registerRepeated)) {
 71             try {
 72                 String msg = "注册失败";
 73                 request.getSession().setAttribute("msg", msg);
 74                 request.getRequestDispatcher("index/register.jsp").forward(request, response);
 75             } catch (ServletException | IOException e) {
 76                 e.printStackTrace();
 77             }
 78         }
 79     }
 80 //    private void del(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 81 //        String user = request.getParameter("user");
 82 //        try {
 83 //            userDao.del(user);
 84 //            request.getSession().setAttribute("msg", "删除成功!");
 85 //            request.getRequestDispatcher("index/index.jsp").forward(request, response);
 86 //        } catch (Exception e) {
 87 //            e.printStackTrace();
 88 //            request.getSession().setAttribute("msg", "删除失败!");
 89 //            request.getRequestDispatcher("index/index.jsp").forward(request, response);
 90 //        }
 91 //    }
 92 //    private void getAll(HttpServletRequest request, HttpServletResponse response) {
 93 //        request.getSession().setAttribute("userList", userDao.getAll());
 94 //        try {
 95 //            request.getRequestDispatcher("index/index.jsp").forward(request, response);
 96 //        } catch (ServletException | IOException e) {
 97 //            e.printStackTrace();
 98 //        }
 99 //    }
100 }
UserServlet
 1 import java.sql.DriverManager;
 2 import java.sql.SQLException;
 3 import java.sql.Connection;
 4 
 5 public class ConnectionUtil {
 6     private String dbDriver = "com.mysql.cj.jdbc.Driver";
 7     private String dbUrl="jdbc:mysql://localhost:3306/login?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC ";
 8     private String dbUser="root";
 9     private String dbPw="123456";
10     private static Connection conn = null;
11 
12     public Connection getConn() {
13         try{
14             Class.forName(dbDriver);
15             conn = DriverManager.getConnection(dbUrl,dbUser,dbPw);
16         }catch(ClassNotFoundException|SQLException e){
17             e.printStackTrace();
18         }
19         return conn;
20     }
21 
22     public static void conClose(){
23         if(conn != null){
24             try {
25                 conn.close();
26             } catch (SQLException e) {
27                 e.printStackTrace();
28             }
29         }
30     }
31 }
ConnectionUtil
 1 import cn.flyuz.pan.util.ConnectionUtil;
 2 
 3 import javax.servlet.ServletContextEvent;
 4 import javax.servlet.ServletContextListener;
 5 import javax.servlet.annotation.WebListener;
 6 
 7 @WebListener
 8 public class DBCloseListener implements ServletContextListener{
 9     @Override
10     public void contextDestroyed(ServletContextEvent arg0) {
11         ConnectionUtil.conClose();
12     }
13 
14     @Override
15     public void contextInitialized(ServletContextEvent arg0) {
16     }
17 }
DBCloseListener
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6 
 7     <groupId>groupId</groupId>
 8     <artifactId>flyuzP</artifactId>
 9     <version>1.0-SNAPSHOT</version>
10     <dependencies>
11     <dependency>
12         <groupId>javax.servlet</groupId>
13         <artifactId>jstl</artifactId>
14         <version>1.2</version>
15     </dependency>
16 
17     <dependency>
18         <groupId>taglibs</groupId>
19         <artifactId>standard</artifactId>
20         <version>1.1.2</version>
21     </dependency>
22 
23     <dependency>
24         <groupId>mysql</groupId>
25         <artifactId>mysql-connector-java</artifactId>
26         <version>8.0.12</version>
27     </dependency>
28     </dependencies>
29     <build>
30         <plugins>
31             <plugin>
32                 <groupId>org.apache.maven.plugins</groupId>
33                 <artifactId>maven-compiler-plugin</artifactId>
34                 <version>2.5</version>
35                 <configuration>
36                     <source>1.8</source>
37                     <target>1.8</target>
38                     <encoding>utf8</encoding>
39                 </configuration>
40             </plugin>
41         </plugins>
42     </build>
43 
44 </project>
Maven

 

以上是关于servlet-mysql实现简单用户登录注册的主要内容,如果未能解决你的问题,请参考以下文章

网页中的用户登录、注册,怎么制作

Flask博客实战 - 实现登录注册功能

学习笔记:JS + 简单的PHP实现用户注册及登录

抄袭的用Jsp+JavaBean+Mysql实现的登录和注册

用java模拟设计一个简单的“用户注册”程序。当用户输入用户名和密码时,单击“注

简单使用JDBC和Servlet实现用户注册和登录功能