package com.xzit.erpmodel.users.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.xzit.erpmodel.users.domain.SysUsers;
import com.xzit.erpmodel.users.service.UsersService;
import com.xzit.erpmodel.users.service.UsersServiceImp;
/**
* Servlet implementation class UsersServlet
*/
@WebServlet("/UsersServlet")
public class UsersServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/* 获取用户提交的登录信息 */
String name = request.getParameter("username");
String pwd = request.getParameter("password");
String savepwd = request.getParameter("savepwd");
SysUsers user = new SysUsers();
user.setName(name);
user.setPassword(pwd);
UsersService service = new UsersServiceImp();
SysUsers current = service.validateLogin(user);
if(current !=null) {//用户登录成功
Cookie[] cookies = request.getCookies();//获取用户未过期的所有Cookie
if(cookies != null && cookies.length !=0) {//有Cookie
int count = 0; //计数器
for(int i=0;i//遍历数组查找目标Cookie
if(cookies[i].getName().equals("logininfo") || cookies[i].getName().equals("logininfo2")) {//如果找到了目标有效的Cookie
if(savepwd == null) {
cookies[i].setMaxAge(0);//不保存Cookie
response.addCookie(cookies[i]);
}
count++;
}
}
if(count == 0) {//没有找到Cookie
if(savepwd != null && savepwd.equals("on")) {//用户欲保存密码及用户信息
Cookie newCookie = new Cookie("logininfo",name);
Cookie newCookie2 = new Cookie("logininfo2",pwd);
newCookie.setMaxAge(3600*24*7);//设置Cookie的生命周期为7天
newCookie2.setMaxAge(3600*24*7);//设置Cookie的生命周期为7天
response.addCookie(newCookie);
response.addCookie(newCookie2);
}
}
}else {
if(savepwd != null && savepwd.equals("on")) {//用户欲保存密码及用户信息
Cookie newCookie = new Cookie("logininfo",name);
Cookie newCookie2 = new Cookie("logininfo2",pwd);
newCookie.setMaxAge(3600*24*7);//设置Cookie的生命周期为7天
newCookie2.setMaxAge(3600*24*7);//设置Cookie的生命周期为7天
response.addCookie(newCookie);
response.addCookie(newCookie2);
}
}
//将用户对象存储到会话域中
HttpSession sess = request.getSession();//如果有Session直接返回,没有则创建新的Session对象
sess.setAttribute("currentUser", current);
response.sendRedirect("worker.jsp");
}else {
response.sendRedirect("login.jsp?loginfaild=error");//登录失败跳转到登录页面
}
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" session="false"%>
Insert title here
<%
String mess = request.getParameter("loginfaild"
);
if(mess !=
null && mess.equals("error"
)){
%>
<%
}
%>