zoukankan      html  css  js  c++  java
  • JavaWeb 实现简单登录、注册功能

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

    2.然后手动建立文件目录:

    项目创建好之后,在src下建几个包:

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

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

    model:存放实体类;

    service:业务逻辑的处理;

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

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

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

     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.最后,启动服务器,界面效果出来了

  • 相关阅读:
    ios中从相册:相机中获取图片信息
    ios中图片的绘画和截图
    UIPickView的简单介绍
    封装类的方式访问数据库(封装字符串、json)
    ajax用户名案例(重点)
    mysql中一对一,一对多,多对多关系
    会话控制:SESSION,COOKIE
    ajax简单案例:返回json型
    ajax同步,异步
    ajax简单案例:字符串返回类型
  • 原文地址:https://www.cnblogs.com/wydyzcnc/p/8322154.html
Copyright © 2011-2022 走看看