/** * Copyright © 2025 eSunny Info. Tech Ltd. All rights reserved. * * 功能描述: * @Package: com.chinasofti.servlet * @author: 李洪涛 * @date: 2025年3月27日 上午9:21:53 */ package com.chinasofti.servlet; import java.io.IOException; import java.util.ArrayList; import java.util.List; 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 com.chinasofti.enums.IsCounselor; import com.chinasofti.enums.RoleId; import com.chinasofti.model.Clazz; import com.chinasofti.model.Role; import com.chinasofti.model.Teacher; import com.chinasofti.model.User; import com.chinasofti.service.ClazzService; import com.chinasofti.service.LoginService; import com.chinasofti.service.RoleService; import com.chinasofti.service.TeacherService; import com.chinasofti.service.impl.ClazzServiceImpl; import com.chinasofti.service.impl.LoginServiceImpl; import com.chinasofti.service.impl.RoleServiceImpl; import com.chinasofti.service.impl.TeacherServiceImpl; import com.chinasofti.utils.SM3PasswordEncoder; /** * * Copyright: Copyright (c) 2025 chiansofti * * @ClassName: LoginServlet.java * @Description: 登录校验 * * @version: v1.0.0 * @author: 李洪涛 * @date: 2025年3月27日 上午9:09:40 * * Modification History: * Date Author Version Description *---------------------------------------------------------* * 2025年3月27日 李洪涛 v1.0.0 新建文件 */ @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; private LoginService loginService = new LoginServiceImpl(); private RoleService roleService = new RoleServiceImpl(); private ClazzService clazzService = new ClazzServiceImpl(); private TeacherService teacherService = new TeacherServiceImpl(); public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException{ doPost(request, response); } /** * * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) * @Function: doPost * @Description: 登录校验,跳转页面 * * @param: request * @param: response * @return: void * @throws:无 * * @version: v1.0.0 * @author: 李洪涛 * @date: 2025年3月27日 上午9:12:20 * * Modification History: * Date Author Version Description *---------------------------------------------------------* * 2025年3月27日 李洪涛 v1.0.0 新建方法 */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String method = request.getParameter("method"); if("logout".equals(method)){ logout(request, response); return; } String username = request.getParameter("username"); String password = request.getParameter("password"); User user = new User(); user.setUserName(username); User res = loginService.loginCheck(user); String loginStatus = "loginSuccess"; if (null != res && SM3PasswordEncoder.matches(password, res.getPassWord())) { HttpSession session=request.getSession(); Role role = roleService.findRoleById(res.getRoleId()); session.setAttribute("user", res); session.setAttribute("roleCode", role.getRoleCode()); if (RoleId.TEACHER.getId() == role.getId()) { long userId = res.getId(); Teacher teacher = new Teacher(); teacher.setUserId(userId); teacher = teacherService.findTeacher(teacher); List clazzs = new ArrayList(); long teacherId = teacher.getId(); clazzs.addAll(clazzService.findClazzsByTeacherId(teacherId)); if (IsCounselor.YES.getIs().equals(teacher.getIsCounselor())) { session.setAttribute("isCounselor", IsCounselor.YES.getIs()); clazzs.addAll(clazzService.findClazzsByUserIds(userId+"")); } else { session.setAttribute("isCounselor", IsCounselor.NO.getIs()); } String clazzIdStr = ""; if (clazzs.size() > 0) { for (Clazz clazz : clazzs) { clazzIdStr += clazz.getId() + ","; } clazzIdStr = clazzIdStr.substring(0, clazzIdStr.length()-1); } session.setAttribute("clazzIdStr", clazzIdStr); session.setAttribute("teacherId", teacherId); } } else { loginStatus = "loginError"; } response.getWriter().write(loginStatus); } /** * * @Function: logout * @Description: 退出登录 * * @param: request * @param: response * @return: void * @throws:无 * * @version: v1.0.0 * @author: 李洪涛 * @date: 2025年3月27日 上午9:12:20 * * Modification History: * Date Author Version Description *---------------------------------------------------------* * 2025年3月27日 李洪涛 v1.0.0 新建方法 */ private void logout(HttpServletRequest request,HttpServletResponse response) throws IOException{ request.getSession().removeAttribute("user"); request.getSession().removeAttribute("userType"); response.sendRedirect("index.jsp"); } }