jsp+servlet+Tomcat+mysql实现用户注册、登录、查看、修改实例之——用户登录

学习javaWeb,首先要学习基础的jsp,servlet,弄通了机制然后就得心应手了。我们来实现一个简单的实例来学习。


我们的任务有:1.数据库及表创建

       2.实现用户注册

       3.实现用户登录

       4.实现用户列表显示

       5.实现用户删除

       6.实现用户信息查看

       7.实现用户信息修改


 上节我们实现了用户注册,本节来接着实现用户登录

三、用户登录

要实现用户登录功能,我们需要完成以下几个任务:

      1.写登录jsp页面

      2.写登录servlet

      3.写登录验证方法

1.登录页面

一个简单的登录页面需要包含登录信息和登录提交按钮,下面是一个简单的登录界面

(说明:如果用户未输入用户信息或者输入信息有误,提示用户名或密码错误) 

userlogin.jsp部分代码如下:

 1 <% String message = (String)(request.getAttribute("message")); %>
 2 <!--省略JS判断部分代码 ->
 3 <form id = "form1" action = "servlet/UserloginServlet" method = "post">
 4         <table border="1" style="border-collapse:collapse;">
 5             <tr align = "center">
 6                 <td colspan="2">用户登录</td>    
 7             </tr>
 8             <tr>
 9                 <td>用户名:</td>
10                 <td>
11                     <input type = "text" name = "userName"/>
12                 </td>
13                 
14             </tr>
15             <tr>
16                 <td>密码:</td>
17                 <td>
18                     <input type = "password" name = "userPassword"/>        
19                     <span style = "color:red; font-size:13px;" id = "td2"><%=message %></span>
20                 </td>
21             </tr>
22             <tr align = "center">
23                 <td colspan = "2">
24                     <input type = "submit" name="register" value ="注册" onclick="changeR()" />
25                     <input type = "submit" name="login" value ="登录"/>
26                 </td>    
27             </tr>
28         </table>
29     </form>

:由于刚开始刷到本页面时,message值为null,所以会显示null,需处理掉)

2.登录Servlet

上面的页面将form数据提交给了UserloginServlet.java 类,该类中的部分代码为:

 1 public void doPost(HttpServletRequest request, HttpServletResponse response)
 2             throws ServletException, IOException {
 3 
 4         request.setCharacterEncoding("utf-8");
 5         response.setCharacterEncoding("utf-8");
 6         String userName = request.getParameter("userName");
 7         String userPassword = request.getParameter("userPassword");
 8         // 前台得到用户输入
 9         UserDao userDao = new UserDao();
10         UserVo user = userDao.judgeUserPassword(userName, userPassword);
11         // 调用方法判断用户是否存在
12         String message = "用户名或密码错误~!";
13         if (user == null) {
14             // 如果用户不存在,重新登录
15             request.setAttribute("message", message);
16             request.getRequestDispatcher("/userlogin.jsp").forward(request,
17                     response);
18         } else {
19             // 如果用户存在,检索数据,跳到用户列表显示页面
20             ArrayList<UserVo> list = userDao.selectNotDeleteList();
21             request.setAttribute("list", list);
22             request.getRequestDispatcher("/userlist.jsp").forward(request,
23                     response);
24         }
25 
26     }

3.登录验证

从servlet中获得了用户输入以后,在UserDao.java中调用judgeUserPassword(userName, userPassword)方法验证用户是否存在

方法具体内容如下:

 1 public UserVo judgeUserPassword(String userName, String userPassword) {
 2         // 用户登录验证
 3         Dbmanage dbmanage = new Dbmanage();
 4         Connection conn = null;
 5         Statement sta = null;
 6         ResultSet rs = null;
 7         UserVo user = null;
 8         try {
 9             conn = dbmanage.initDB();
10             sta = conn.createStatement();
11             System.out.println(userName);
12             System.out.println(userPassword);
13             String sql = "SELECT * FROM userTable WHERE user_name = '"
14                     + userName + "' AND user_password= '" + userPassword + "'";
15             rs = sta.executeQuery(sql);
16             while (rs.next()) {
17                 user = new UserVo();
18                 user.setUserName(rs.getString("user_name"));
19                 user.setUserPassword(rs.getString("user_password"));
20 
21             }
22 
23         } catch (SQLException e) {
24 
25             e.printStackTrace();
26         } finally {
27             // 执行完关闭数据库
28             dbmanage.closeDB(rs, sta, conn);
29         }
30      // 返回查询结果
31         return user;
32     }

到这里,登录流程已经基本实现了。


链接导航     1.数据库及表创建

       2.实现用户注册

       3.实现用户登录

       4.实现用户列表显示

       5.实现用户删除

       6.实现用户信息查看

       7.实现用户信息修改


原文地址:https://www.cnblogs.com/tzhz/p/3085560.html