-
Notifications
You must be signed in to change notification settings - Fork 31
/
LoginServlet.java
159 lines (138 loc) · 4.19 KB
/
LoginServlet.java
1
2
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
package pers.huangyuhui.sms.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 javax.servlet.http.HttpSession;
import pers.huangyuhui.sms.dao.AdminDao;
import pers.huangyuhui.sms.dao.StudentDao;
import pers.huangyuhui.sms.dao.TeacherDao;
import pers.huangyuhui.sms.model.AdminInfo;
import pers.huangyuhui.sms.model.StudentInfo;
import pers.huangyuhui.sms.model.TeacherInfo;
import pers.huangyuhui.sms.util.StringUtil;
/**
* @ClassName: VerifyLoginServlet
* @Description: 验证用户登录
* @author: HuangYuhui
* @date: May 6, 2019 10:19:15 PM
*
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static AdminDao adminDao = new AdminDao();
private static TeacherDao teacherDao = new TeacherDao();
private static StudentDao studentDao = new StudentDao();
public LoginServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String method = request.getParameter("method");
if ("login".equals(method)) {
login(request, response);
} else if ("loginOut".equals(method)) {
loginOut(request, response);
return;
}
}
/**
* @Title: login
* @Description: 验证用户登录表单信息
* @param: request
* @param: response
* @return: void
* @exception IOException
*/
private void login(HttpServletRequest request, HttpServletResponse response) throws IOException {
// 获取用户登录类型
int userType = Integer.valueOf(request.getParameter("userType"));
// 获取用户提交的登录表单信息
String name = request.getParameter("userName");
String password = request.getParameter("userPassword");
// 获取验证码信息
String verifiCode = request.getParameter("verificationCode");
String verificationCode = request.getSession().getAttribute("verifiCode").toString();
/*
* 验证验证码
*/
if (StringUtil.isEmpty(verifiCode) || !verifiCode.equalsIgnoreCase(verificationCode)) {
response.getWriter().write("vcodeError");// 验证码错误提示
return;
}
/*
* 验证用户登录
*/
switch (userType) {
// 管理员身份
case 1: {
// 验证用户信息
AdminInfo adminInfo = new AdminInfo();
adminInfo = adminDao.getUserInfo(name, password);
if (adminInfo == null) {
response.getWriter().write("loginError");
return;
}
// 登录成功: 将用户信息存储到Sesssion
HttpSession session = request.getSession();
session.setAttribute("userInfo", adminInfo);
session.setAttribute("userType", userType);
// 进入系统主页
response.getWriter().write("loginSuccess");
break;
}
// 学生身份
case 2: {
StudentInfo studentInfo = new StudentInfo();
studentInfo = studentDao.getUserInfo(name, password);
if (studentInfo == null) {
response.getWriter().print("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("userInfo", studentInfo);
session.setAttribute("userType", userType);
response.getWriter().print("loginSuccess");
break;
}
// 教师身份
case 3: {
TeacherInfo teacherInfo = new TeacherInfo();
teacherInfo = teacherDao.getUserInfo(name, password);
if (teacherInfo == null) {
response.getWriter().print("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("userInfo", teacherInfo);
session.setAttribute("userType", userType);
response.getWriter().print("loginSuccess");
break;
}
}
}
/**
* @throws IOException
* @Title: loginOut
* @Description: 注销用户信息
* @param: request
* @param: response
* @return: void
*/
private void loginOut(HttpServletRequest request, HttpServletResponse response) {
request.getSession().removeAttribute("userInfo");
request.getSession().removeAttribute("userType");
try {
response.sendRedirect("index.jsp");
} catch (IOException e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}