创建Cookie
可以在目标方法内加入HttpServletResponse
形参,在方法内创建Cookie并返回即可
@RequestMapping("/cookie")
public String creatCookie(User user,HttpServletResponse response){
//创建cookie对象
Cookie ck = new Cookie(user.getUname(), user.getPsw());
//设置Cookie有效时间,单位为妙
ck.setMaxAge(60*60*24);
//设置Cookie的有效范围,/为全部路径
ck.setPath("/");
//将Cookie响应到客户端
response.addCookie(ck);
return "success";
}
在客户端获取cookie
在客户端可通过js获取cookie,但是获取到的是一个cookie字符串,需要对字符串进行分割,可以使用jQuery的cookie的js对cookie进行操作
不使用jQuery,获取到所有的cookie集合字符串
function cookie(){
var ck = document.cookie;
alert(ck);
}
使用jQuery可以直接指定cookie的key值来获取指定cookie的value值
function cookie(){
var ck = $.cookie("key值");
alert(ck);
}
在后台获取cookie
在后台获取cookie可以使用两种方法
使用原生方式获取,可以在目标方法内添加HttpServletRequest
类型的形参,通过request获取
@RequestMapping("/getcookie")
public String getCookie(HttpServletRequest request ){
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if(cookie.getName().equals("uname")){
cookie.setValue("unameValue");
}
}
return "success";
}
使用注解方式获取
在目标方法中加入一个字符串,在其前加注解,直接将cookie指定的key的值赋值给该字符串required
表示该cookie可能不存在对应的key
@RequestMapping("/getCookie")
public String getCookie(@CookieValue(value="aaa",required=false) String uname){
System.out.println(uname);
return "success";
}