学习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