向请求中添加cookie:
//创建cookie对象,赋值key-value
Cookie userCookie = new Cookie("username","zhangsan");
//设置cookie有效期(单位秒),如果不设置默认为关闭浏览器时删除该cookie
userCookie.setMaxAge(60);
//设置可以访问此cookie的域名
userCookie.setDomain("localhost");
//设置可以访问此cookie的路径
userCookie.setPath("/");
//设置是否只能通过https来传递此cookie
userCookie.setSecure(false);
//若此属性为true,则只有在http请求头中会带有此cookie的信息,而不能通过document.cookie来访问此cookie
userCookie.setHttpOnly(true);
//将cookie添加到response中
response.addCookie(userCookie);
从请求中获取cookie:
Cookie[] cookies = request.getCookies();
if (cookies == null){
//没有获取到任何Cookie
}
Cookie userCookie = null;
for (Cookie cokie : cookies){
//筛选自己需要的cookie
if (cokie.getName().equals("username")){
userCookie = cokie;
}
}
//从name=username的cookie中获取刚才存入的值
String cookieValue = userCookie.getValue();
注意:getMaxAge()方法获取的值始终是-1,这并不是设置超时时间没有成功,只是浏览器返回时只返回了cookie的key-value,更详细的原因可以自行百度