import domain.User; import org.apache.commons.beanutils.BeanUtils; import service.impl.userServiceImpl; 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.Map; /** * 用户登录 */ @WebServlet("/loginServlet") public class loginServlet extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1、设置编码 request.setCharacterEncoding("UTF-8"); //2、获取数据 //检验验证码 String verifycode = request.getParameter("verifycode");//输入的验证码 HttpSession session = request.getSession(); String checkCode = (String) session.getAttribute("CHECKCODE_SERVER");//正确的验证码 session.removeAttribute("CHECKCODE_SERVER");//验证码是一次性的 session.removeAttribute("login_msg");//提示信息清空 if(!checkCode.equalsIgnoreCase(verifycode)){ //验证码不正确 request.setAttribute("login_msg","验证码错误!"); request.getRequestDispatcher("/login.jsp").forward(request, response); return; } Map map = request.getParameterMap(); //3、封装User对象 User user = new User(); try { BeanUtils.populate(user,map);//给user的部分属性赋值 } catch (IllegalAccessException e) { throw new RuntimeException(e); } catch (InvocationTargetException e) { throw new RuntimeException(e); } //4、调用Service查询 userServiceImpl service = new userServiceImpl(); User loginUser = service.login(user); //5、判断 if (loginUser != null){ //登录成功 //将用户存入session,然后跳转页面 request.getSession().setAttribute("loginUser",loginUser); response.sendRedirect(request.getContextPath() + "/index.jsp"); }else{ //登录失败 request.setAttribute("login_msg","用户名或者密码错误"); request.getRequestDispatcher("/login.jsp").forward(request, response); } } }