一.前言
Cookie是客户端技术,而HttpSession是服务器端技术。Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入JSESSIONID用于标记一个会话(session),这样服务器可以知道该用户是否合法用户以及是否需要重新登录等,服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。
二.cookie属性的介绍
1. name
名称(必须)
2.value
值(必须)
3.comment
可选的。注释
4.path:
设置路径(可选)
如果不设置路径,那么只有设置该cookie的URI及其子路径可以访问
5.version
版本(可选)
6.domain
该Cookie所属的网站域名(可选)
7.maximum age
不设置就是会话过程(存在浏览器的内存中)。单位是秒 ,如果是0,说明即将要删除。
三.Cookie的操作
@RestController
@RequestMapping(\"/cooki\")
public class CookiController {
@Resource
HttpServletRequest request;
@Resource
HttpServletResponse response;
/**
* @Description getCookie
**/
@GetMapping(\"/get\")
public String getCookie(){
String str_cookie=\"\";
Cookie[] cookies = request.getCookies();
if(cookies != null){
for(Cookie cookie : cookies){
String name = cookie.getName();
String value = cookie.getValue();
String comment = cookie.getComment();
String path = cookie.getPath();
int version = cookie.getVersion();
boolean secure = cookie.getSecure();
int maxAge = cookie.getMaxAge();
str_cookie=str_cookie+\"name:\"+name+\" value\"+value+\" commoent:\"+comment+\" path:\"+path+\" version:\"+version+\" secure:\"+secure+\" maxAge:\"+maxAge+\"\\n\";
}
}
return str_cookie;
}
/**
* @Description 设置cookie
**/
@GetMapping(\"/set\")
public String setCookie(int maxage,String path,String domain){
Cookie cookie = new Cookie(\"name_1\", \"hello\");
if(maxage!=0){
cookie.setMaxAge(maxage);
}
if(path!=null&&!path.equals(\"\")){
cookie.setPath(path);
}
if(domain!=null&&!domain.equals(\"\")){
cookie.setDomain(domain);
}
response.addCookie(cookie);
return \"ok\";
}
/**
* @Description 删除cookie
**/
@GetMapping(\"/delete\")
public String deleteCookie(String name){
if(name!=null&&!name.equals(\"\")){
Cookie cookie = new Cookie(\"name_1\", \"hello\");
cookie.setMaxAge(0);
response.addCookie(cookie);
}
return \"ok\";
}
}
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。




