• 前台开发——处理用户的登录


    在导航栏的header.jsp中的登录按钮进行处理:

    <li><a href="${pageContext.request.contextPath }/user_login.jsp" >登录</a></li>

    user_login.jsp给form表单一个链接的地址:

    <form action="${pageContext.request.contextPath }/user_login" method="post"> 

    在servlet层中加入一个servlet类,命名为:UserLoginServlet.java

    定义两个变量:

    String ue=request.getParameter("ue");
    String password=request.getParameter("password");

    在UserDao.java写入查询的语句,一个是根据用户名(username)查询,另一个是根据邮箱(email)查询:

    public User selectByUsernamePassword(String username,String password) throws SQLException {
                
                QueryRunner r = new QueryRunner(DBUtil.getDataSource());
                String sql="select * from user where username=? and password=?";
                return r.query(sql, new BeanHandler<User>(User.class),username,password);
                
            }
            
    public User selectByEmailPassword(String email,String password) throws SQLException {
                
                QueryRunner r = new QueryRunner(DBUtil.getDataSource());
                String sql="select * from user where  email=? and password=?";
                return r.query(sql, new BeanHandler<User>(User.class), email,password);
                
            }
            
            

    在UserService.java中写入根据UserDao层查询出来的结果进行一个处理:

    public User login(String ue,String password) {
            
            
                User user=null;
                try {
                    user = uDao.selectByUsernamePassword(ue, password);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            
            if(user!=null) {
                return user;
            }
        try {
            user=uDao.selectByEmailPassword(ue, password);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if(user!=null)
        {
            return user;
        }
        return null;
            
        }
        
        

    UserLoginServlrt.java中通过由service层中处理的结果从而获取数据,当登录失败时候的结果:

    package com.guiyan.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.guiyan.model.User;
    import com.guiyan.service.UserService;
    
    /**
     * Servlet implementation class UserLoginServlet
     */
    @WebServlet("/user_login")
    public class UserLoginServlet extends HttpServlet {
        private UserService uService=new UserService();
        
        
        
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String ue=request.getParameter("ue");
            String password=request.getParameter("password");
            User user=uService.login(ue, password);
            if(user==null) {
                request.setAttribute("failMsg", "用户名、邮箱或者密码错误,请重新登录!!!");
                request.getRequestDispatcher("/user_login.jsp").forward(request, response);
            }
        }
    
    }

    数据库里的内容:

    其登录失败的效果图:

     上图是登录失败的结果

     

    处理登录成功后跳转到个人中心

    最终效果:

     

     UserLoginServlet.java进行登录成功的处理:

    package com.guiyan.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.guiyan.model.User;
    import com.guiyan.service.UserService;
    
    /**
     * Servlet implementation class UserLoginServlet
     */
    @WebServlet("/user_login")
    public class UserLoginServlet extends HttpServlet {
        
        private UserService uService = new UserService();
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String ue = request.getParameter("ue");
            String password = request.getParameter("password");
            User user = uService.login(ue, password);
            if(user==null) {
                request.setAttribute("failMsg", "用户名、邮箱或者密码错误,请重新登录!!!");
                request.getRequestDispatcher("/user_login.jsp").forward(request, response);
            }else {
                request.getSession().setAttribute("user", user);
                request.getRequestDispatcher("/user_center.jsp").forward(request, response);
            }
            
        }
    
    }

    user_center.jsp的创建:

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     4 
     5 
     6 <!DOCTYPE html>
     7 <html>
     8 <head>
     9     <title>个人中心</title>
    10     <meta name="viewport" content="width=device-width, initial-scale=1">
    11     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    12     <link type="text/css" rel="stylesheet" href="css/bootstrap.css">
    13     <link type="text/css" rel="stylesheet" href="css/style.css">
    14     <script type="text/javascript" src="js/jquery.min.js"></script>
    15     <script type="text/javascript" src="js/bootstrap.min.js"></script>
    16     <script type="text/javascript" src="js/simpleCart.min.js"></script>
    17 </head>
    18 <body>
    19 
    20     
    21 
    22 
    23 
    24 
    25 
    26     <!--header-->
    27     <jsp:include page="/header.jsp"></jsp:include>
    28     
    29     
    30     <!--//header-->
    31 
    32     
    33     <!--account-->
    34     <div class="account">
    35         <div class="container">
    36             <div class="register">
    37                 
    38                 <form action="my.action" method="post"> 
    39                     <input type="hidden" name="user.id" value="1">
    40                     <div class="register-top-grid">
    41                         <h3>个人中心</h3>
    42                         
    43                         <h4>收货信息</h4>
    44                         <div class="input">
    45                             <span>收货人<label></label></span>
    46                             <input type="text" name="user.name" value="${user.name }" placeholder="请输入收货"> 
    47                         </div>
    48                         <div class="input">
    49                             <span>收货电话</span>
    50                             <input type="text" name="user.phone" value="${user.phone }" placeholder="请输入收货电话"> 
    51                         </div>
    52                         <div class="input">
    53                             <span>收货地址</span>
    54                             <input type="text" name="user.address" value="${user.address }" placeholder="请输入收货地址"> 
    55                         </div>
    56                         <div class="register-but text-center">
    57                            <input type="submit" value="提交">
    58                         </div>    
    59                         <hr>
    60                         <h4>安全信息</h4>
    61                         <div class="input">
    62                             <span>原密码</span>
    63                             <input type="password" name="user.password" placeholder="请输入原密码"> 
    64                         </div>
    65                         <div class="input">
    66                             <span>新密码</span>
    67                             <input type="password" name="user.passwordNew" placeholder="请输入新密码"> 
    68                         </div>
    69                         <div class="clearfix"> </div>
    70                         <div class="register-but text-center">
    71                            <input type="submit" value="提交">
    72                         </div>    
    73                     </div>
    74                 </form>
    75                 <div class="clearfix"> </div>
    76             </div>
    77         </div>
    78     </div>
    79     <!--//account-->
    80 
    81     
    82 
    83 
    84 
    85 
    86     <!--footer-->
    87     <jsp:include page="/footer.jsp"></jsp:include>
    88     <!--//footer-->
    89 
    90 </body>
    91 </html>
    user_center.jsp
  • 相关阅读:
    过程作为黑箱抽象——《计算机程序的构造和解释》
    过程与它们所产生的计算——《计算机程序的构造和解释》
    重构手法(四)之在对象之间搬移特性
    重构手法(三)之简化条件表达式
    重构手法(二)之简化函数调用
    重构手法(一)之重新组织函数
    代码的坏味道
    泛型算法(二十三)之排列算法
    泛型算法(二十二)之集合操作算法
    泛型算法(二十一)之比较算法
  • 原文地址:https://www.cnblogs.com/jiguiyan/p/10627222.html
Copyright © 2020-2023  润新知