You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
text1/src/web/servlet/login/LoginServlet.java

134 lines
5.3 KiB

package web.servlet.login;
import domain.Admin;
import domain.Notify;
import domain.Student;
import domain.Teacher;
import org.apache.commons.beanutils.BeanUtils;
import service.AdminService;
import service.NotifyService;
import service.StudentService;
import service.TeacherService;
import service.impl.AdminServiceImpl;
import service.impl.NotifyServiceImpl;
import service.impl.StudentServiceImpl;
import service.impl.TeacherServiceImpl;
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 java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.Map;
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Student loginStudent = null;
Teacher loginTeacher = null;
Admin loginAdmin = null;
//设置编码
request.setCharacterEncoding("utf-8");
//获取数据
String verifycode = request.getParameter("verifycode");
String loginid = request.getParameter("id");
String loginpassword = request.getParameter("password");
//验证码校验
HttpSession session = request.getSession();
String checkcode_server = (String) session.getAttribute("CHECKCODE_SERVER");
session.removeAttribute("CHECKCODE_SERVER");//确保验证一次性
if (checkcode_server == null || !checkcode_server.equalsIgnoreCase(verifycode)) {
//验证码不正确
request.setAttribute("login_msg","验证码错误");
//跳转页面
request.setAttribute("loginid",loginid);
request.setAttribute("loginpassword",loginpassword);
request.getRequestDispatcher("/login.jsp").forward(request,response);
return;
}
//封装对象
String id = request.getParameter("id");
String password = request.getParameter("password");
String roles = request.getParameter("roles");
//公告加载
NotifyService notifyService= new NotifyServiceImpl();
List<Notify> notifys = notifyService.find();
session.setAttribute("notifys",notifys);
//判断roles封装对象、保存session、调用不同Service查询
if ("student".equals(roles)) {
Student student = new Student();
student.setS_id(id);
student.setS_password(password);
StudentService service= new StudentServiceImpl();
loginStudent = service.login(student);
if (loginStudent != null) {
session.setAttribute("student", loginStudent);
session.setAttribute("html_title", "学生端");
// request.getRequestDispatcher("/WEB-INF/student/sIndex.jsp").forward(request,response);
response.sendRedirect("studentIndexServlet");
}else {
//登录失败 提示信息
request.setAttribute("login_msg", "用户名或密码错误!");
request.setAttribute("loginid",loginid);
request.setAttribute("loginpassword",loginpassword);
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
}else if ("teacher".equals(roles)) {
Teacher teacher = new Teacher();
teacher.setT_id(id);
teacher.setT_password(password);
TeacherService service = new TeacherServiceImpl();
loginTeacher = service.login(teacher);
if (loginTeacher != null) {
session.setAttribute("teacher", loginTeacher);
session.setAttribute("html_title", "教师端");
// request.getRequestDispatcher("/WEB-INF/teacher/tIndex.jsp").forward(request, response);
response.sendRedirect("teacherIndexServlet");
}else {
//登录失败 提示信息
request.setAttribute("login_msg", "用户名或密码错误!");
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
}else {
Admin admin = new Admin();
admin.setA_id(id);
admin.setA_password(password);
AdminService service = new AdminServiceImpl();
loginAdmin = service.login(admin);
if (loginAdmin != null) {
session.setAttribute("admin", loginAdmin);
session.setAttribute("html_title", "管理员");
// request.getRequestDispatcher("/WEB-INF/admin/aIndex.jsp").forward(request,response);
response.sendRedirect("adminIndexServlet");
}else {
//登录失败 提示信息
request.setAttribute("login_msg", "用户名或密码错误!");
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}