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

在导航栏的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

 

posted @ 2019-03-30 14:27  perfect*  阅读(398)  评论(0编辑  收藏  举报
$(function() { $('#cnblogs_post_body img').each(function() { let imgSrc = $(this).attr('src'); let year = parseInt(imgSrc.substr(imgSrc.indexOf('g')+1,4)); if(year >= 2022){ imgSrc += `?watermark/2/text/amlndWl5YW4=/font/5a6L5L2T/fontsize/15/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast`; $(this).attr('src', imgSrc) } }) })