Cookie概念
- Cookie是个类
- 客户端有了Cookie,每次请求都会发给服务器
- 每个Cookie大小不超过4kb
- 存在客户端
Cookie的创建
/**
* 1.新建一个Cookie对象
* 2.HttpServletResponse.addCookie();
*/
@GetMapping("/getCookie")
public void getCookie(HttpServletResponse response) throws IOException {
Cookie cookie = new Cookie("key1", "value1");
response.addCookie(cookie);
Cookie cookie1 = new Cookie("key2", "value2");
response.addCookie(cookie1);
response.setContentType("text/html; charset=UTF-8");
response.getWriter().write("Cookie创建成功");
}
服务器获取客户端的Cookie
/**
* 1.HttpServletRequest.getCookies()获得一个Cookie数组
* 2.Cookie数组中包含所有的Cookie
*/
@GetMapping("/sendCookie")
public void sendCookie(HttpServletResponse response, HttpServletRequest req) throws IOException {
Cookie[] cookies = req.getCookies();
for (Cookie cookie : cookies){
response.getWriter().write(cookie.getName() + "=" + cookie.getValue());
}
}
修改客户端Cookie
/**
* 1.创建一个同key值,不同value的Cookie
* 2.执行add操作,客户端接收到之后,有相同cookie会覆盖,没有则会创建
*/
@GetMapping("/sendCookie")
public void sendCookie(HttpServletResponse response, HttpServletRequest req) throws IOException {
Cookie cookie = new Cookie("key1", "newValue1");
response.addCookie(cookie);
}
修改Cookie的存活时间
/**
* 1.setMaxAge()
* 正数:指定秒数后过期
* 负数:浏览器一关,Cookie就会被删除(默认是负数 -1)
* 零:马上删除Cookie,填0时,过期时间是一个过去值,所以会马上过期
*/
@GetMapping("/cookieLife")
public void cookieLife(HttpServletResponse response, HttpServletRequest req){
Cookie cookie = new Cookie("cookisLife","cookieLife");
cookie.setMaxAge(60 * 60);
response.addCookie(cookie);
}
Cookie的免用户名登录
Cookie被禁用怎么办
- 拼接在URL地址上