学习javaWeb,首先要学习基础的jsp,servlet,弄通了机制然后就得心应手了。我们来实现一个简单的实例来学习。
我们的任务有:1.数据库及表创建
上节我们实现了用户注册,本节来接着实现用户登录
三、用户登录
要实现用户登录功能,我们需要完成以下几个任务:
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.数据库及表创建
来源:https://www.cnblogs.com/tzhz/archive/2013/05/18/3085560.html