使用cookie实现记住用户名的功能

首先必须登录成功,如果“记住用户名”打勾,那么保存username到cookie中:

if (isRememberUsername != null && isRememberUsername.equals("true")) {
	// 如果勾选,保存cookie数据
	Cookie cookie = new Cookie("username", username);
	cookie.setMaxAge(60*60*24*7);
	ServletActionContext.getResponse().addCookie(cookie);
	System.out.println("保存Cookie~~~");
} 

反之,删除名字是username的cookie:

else {
	// 如果不勾选,删除cookie数据
	Cookie[] cookies = ServletActionContext.getRequest().getCookies();
	if (cookies != null) {
		for (Cookie cookie : cookies) {
			if (cookie.getName().equals("username")) {
				cookie.setMaxAge(0);  // 删除
				ServletActionContext.getResponse().addCookie(cookie);
				System.out.println("删除Cookie~~~");
			}
		}
	}
}

重启浏览器,进入登录页面,获取名字是username的cookie的值,保存到session中,然后在session中取值:

// 读取cookie
Cookie[] cookies = ServletActionContext.getRequest().getCookies();
for (Cookie cookie : cookies) {
	if (cookie.getName().equals("username")) {
		System.out.println("Cookie:" + cookie.getValue());
		// 保存到session中
		ActionContext.getContext().getSession().put("username", cookie.getValue());
	}
}




你可能感兴趣的:(Java)