在导航栏的header.jsp中的登录按钮进行处理:
登录user_login.jsp给form表单一个链接的地址:
在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) throwsSQLException {
QueryRunner r= newQueryRunner(DBUtil.getDataSource());
String sql="select * from user where username=? and password=?";return r.query(sql, new BeanHandler(User.class),username,password);
}public User selectByEmailPassword(String email,String password) throwsSQLException {
QueryRunner r= newQueryRunner(DBUtil.getDataSource());
String sql="select * from user where email=? and password=?";return r.query(sql, new BeanHandler(User.class), email,password);
}
在UserService.java中写入根据UserDao层查询出来的结果进行一个处理:
publicUser 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) {returnuser;
}try{
user=uDao.selectByEmailPassword(ue, password);
}catch(SQLException e) {//TODO Auto-generated catch block
e.printStackTrace();
}if(user!=null)
{returnuser;
}return null;
}
UserLoginServlrt.java中通过由service层中处理的结果从而获取数据,当登录失败时候的结果:
packagecom.guiyan.servlet;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.guiyan.model.User;importcom.guiyan.service.UserService;/*** Servlet implementation class UserLoginServlet*/@WebServlet("/user_login")public class UserLoginServlet extendsHttpServlet {private UserService uService=newUserService();protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, 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进行登录成功的处理:
packagecom.guiyan.servlet;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.guiyan.model.User;importcom.guiyan.service.UserService;/*** Servlet implementation class UserLoginServlet*/@WebServlet("/user_login")public class UserLoginServlet extendsHttpServlet {private UserService uService = newUserService();/***@seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, 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
2 pageEncoding="UTF-8"%>
3
4
5
6
7
8
9
个人中心10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
个人中心
42
43
收货信息
44
45 收货人
46
47
48
49 收货电话
50
51
52
53 收货地址
54
55
56
57
58
59
60
安全信息
61
62 原密码
63
64
65
66 新密码
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
user_center.jsp