cookie拦截器实现七天免登陆java

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;
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值