public boolean login(User user, HttpServletRequest request,
HttpServletResponse response) throws UnsupportedEncodingException {
user = loginService.login(user);
if (user != null) {
String[] nologin = request.getParameterValues(“nologin”);
if (nologin != null) {
String uname = URLEncoder.encode(user.getUname(), “Utf-8”);
// 把值存入cookie中
StringBuilder sb = new StringBuilder();
sb.append(uname);
sb.append("&");
sb.append(user.getPwd());
Cookie cookie = new Cookie(“user”, sb.toString());
cookie.setPath("/");
cookie.setMaxAge(60 * 60 * 24 * 7);
response.addCookie(cookie);
}
HttpSession session = request.getSession();
session.setAttribute("user", user);
return true;
} else {
HttpSession session = request.getSession();
session.setAttribute("msg", msg);
return false;
}
}
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if (user != null) {
return true;
} else {
// 七天免登录
Cookie[] cookies = request.getCookies();
String cookieName = "";
String cookiePwd = "";
if (cookies != null) {
for (Cookie cookie : cookies) {
String names = cookie.getName();
if ("user".equals(names)) {
String value = cookie.getValue();
String[] split = value.split("&");
cookieName = URLDecoder.decode(split[0], "UTF-8");
cookiePwd = split[1];
System.out.println("cookieName" + cookieName);
System.out.println("cookiePwd" + cookiePwd);
User us = loginService.login(new User(0, cookieName,
cookiePwd));
if (us != null) {
session.setAttribute("name", cookieName);
return true;
}
}
}
}
response.sendRedirect(request.getContextPath() + "/login.jsp");
return false;
}
}