J2EECookie 基础知识总结

tech2022-08-27  109

Tomcat 9

在讲述 Cookie 之前,有必要谈谈 Session

session 对象是服务器管理的(session对象存储在服务器端)session 对象是无状态的(每一个session对象与浏览器不存在直接的对应关系)session 需要一个标识来寻找 标识(JSESSIONID )标识是谁分配的?服务器标识长成什么样?是一个 String(唯一)标识存储在哪里?存储在浏览器端什么时候存进去的?服务器在第一次给浏览器响应的时候携带标识标识具体存储在哪里?浏览器端的 Cookie

请求与响应过程简述

先启动服务器(携带项目:有许多资源,比如 Servlet、JSP、Filter…)浏览器主动发送请求(第一次请求时没有 标识)服务器解析请求,根据请求找资源,然后响应信息给浏览器的时候携带有 标识浏览器解析响应信息,并将 标识 存储,然后每一次新请求都携带 标识(正确来说是全部 Cookie 信息,标识 存储在 Cookie 中)

服务器端操作 Cookie

(1)服务器端创建 Cookie

Cookie cookie = new Cookie("key", "value"); response.addCookie(cookie); 服务器端响应信息时携带 Cookie 信息下一次浏览器发送请求的时候会携带 Cookie 信息

(2)服务器端获取 Cookie

Cookie[] = request.getCookies();

(3)Cookie 对象常用方法

cookie.getName(); //获取cookie的key cookie.getValue(); //获取cookie的value cookie.setMaxAge(int); //设置cookie的失效时间,单位:秒 cookie.getDomain(); //返回cookie的域名 cookie.getPath(); cookie.getVerson(); ... cookie.setMaxAge(int); 默认值是 -1,当前 Session 结束时 Cookie 消失

(4)清除 Cookie

浏览器端(不同浏览器,不同的操作方法)服务器端不能直接删除 Cookie,因为 Cookie 实际上存储在浏览器端,需要迂回告知浏览器端删除 cookie.setMaxAge(0); response.addCookie(coookie);

JavaScript 操作 Cookie

var cookieObject = document.cookie; //k1=v1;k2=v2;k3=v3
最新回复(0)