Cookie
Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。
与之前说过的session不同,session是保存在服务端的,而cookie是保存在客户端的。
首先先在前端通过Jquey来判断,用户是否勾选了 记住我 复选框,如果勾选了,那么后台将用户的账号和密码写入cookie
首先先创建Cookie,然后将用户名和密码写入Cookie,设置号Cookie存在的时长,用response写入Cookie
后端代码:
//添加缓存
@RequestMapping("/add_cookie")
@ResponseBody
public String add_cookies(User user,HttpServletResponse response)throws Exception{
String username=user.getUserName();
String password=user.getPassWord();
//将用户名存入cookie 并且设置cookie存在时长
Cookie cookie_username= new cookie("username",URLEncoder.encode(username,"utf-8"));
// 设置生存时间
cookie_username.setMaxAge(60*60*60);
//将cookie 写入浏览器
response.addCookie(cookie_username);
//将密码存入cookie 并且设置cookie存在时长
Cookie cookie_password= new cookie(“password”,URLEncoder.encode(password,“utf-8”));
// 设置生存时间
cookie_password.setMaxAge(606060);
// 将cookie 写入浏览器
response.addCookie(cookie_password);
return null;
}
HttpServletResponse对象介绍
HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。查看HttpServletResponse的API,可以看到这些相关的方法
当用户不想再让自己的用户名和密码保存在Cookie中,那么将执行删除缓存的方法
代码如下:
//删除缓存
@RequestMapping("/del_cookie")
@ResponseBody
public String del_cookie(HttpServletRequest request,HttpServletResponse response){
Cookie[] cookies = request.getCookies();
if (cookies != null && cookies.length > 0) {
for (Cookie cookie : cookies) {
// 找到需要删除的Cookie
if("username".equals(cookie.getName())){
// 设置生存期为0
cookie.setMaxAge(0);
// 设回Response中生效
response.addCookie(cookie);
}
if("userPassword".equals(cookie.getName())){
// 设置生存期为0
cookie.setMaxAge(0);
// 设回Response中生效
response.addCookie(cookie);
}
}
}
return null;
}
最后只用在用户每次打开首页时候,重定向中执行查找Cookie的方法就可以实现了
//判断cookiees是否为空
if(request.getCookies()!=null){
//将cookies值放入cookies数组
Cookie[] cookies = request.getCookies();
//判断cookies数组
if (cookies != null && cookies.length > 0) {
//遍历cookies数组
for (Cookie cookie : cookies) {
if (cookie.getName().equals(“username”)) {
model.addAttribute(“username”, URLDecoder.decode(cookie.getValue(), “utf-8”));
}
if (cookie.getName().equals(“userPassword”)){
model.addAttribute(“userPassword”,URLDecoder.decode(cookie.getValue(),“utf-8”));
}
}
}
}