zoukankan      html  css  js  c++  java
  • 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.实现用户信息修改


  • 相关阅读:
    用一个变量表示 ----------"序号,名称,价格"
    11.3 字典复习
    python闭包使用
    Selenium with Python使用心得
    laravel队列使用
    display:inline-block笔记
    python mysql设置当前连接默认的字符集
    lavavel门面(facade)分析
    系统软件漏洞修复最佳实践
    记一次浮点数比较
  • 原文地址:https://www.cnblogs.com/tzhz/p/3085560.html
Copyright © 2011-2022 走看看