Cookie And Session用法解析

    xiaoxiao2021-04-14  48

    Cookie And Session用法解析

    Cookie技术

    Cookie技术使用场景: 将会话数据保存在浏览器客户端。Cookie原理: 2.1 服务器端创建Cookie数据,然后通过set-cookie的响应头把cookie数据发送给浏览器保存。 响应头:例如set-cookie:name=admin 2.2 浏览器第一次访问服务器,同时将cookie数据保存在浏览器cookie目录中。 2.3 浏览器在下次访问服务器时,会带cookie数据访问服务器,通过cookie的请求头将数据发送给服务器。 请求头:例如cookie:name=admin 2.4 服务器接受浏览器发送的cookie数据 request.getCookies()Cookie常用API方法: 3.1 创建cookie对象,用于保存会话数据, new Cookie(String name,String value); 3.2 设置cookie对象 void setPath(String url);设置cookie有效路径,表示只有访问此路径的时候才会带cookie数据。 void setMaxAge(int time);设置cookie有效时间。 void setValue(String value);设置value值; 3.3 发送浏览器数据到浏览器保存。 response.addCookie(cookie); 3.4 接收浏览器发送的cookie数据 Cookie[] request.getCookies();Cookie细节: 4.1设置cookie的有效路径:setPath(uri);如果访问的路径是有效路径,那么下次访问的时候请求会带着cookie数据到服务器。 4.2设置cookie有效时长:setMaxAge(int time); time: 正整数—-cookie数据保存在浏览器的缓存目录中(硬盘中)。例如10。10秒之后就cookie就会丢失。(从最后一次访问cookie开始计算)。 负数—-cookie数据保存在浏览器内存中,浏览器关闭,cookie数据就会丢失。 0—-删除同名的cookie 4.3可以同时往浏览器放松多cookie数据,但是必须是字符串类型。浏览器一般只允许存储300个cookie,每个站点最多存放20个cookie,每个cookie大小限制在4kb.

    Session技术

    Session技术使用场景: session的数据保存在服务器端(服务器端的内存中)

    session原理: 2.1服务器创建Session对象,分配一个唯一的标记(JSESSIONID),会话数据保存sessino对象中,然后服务器把JSESSION作为cookie发送给浏览器保存。 响应头:JSESSIONID=7EBC5D0B44D9D3DDE7FAD83C077E3D3E 2.2浏览器得到JSESSIONID的cookie,保存在浏览器的目录中。 2.3浏览器在下次访问服务器时,带着JSESSIONID的cookie数据访问服务器。 请求头:Cookie: JSESSIONID=7EBC5D0B44D9D3DDE7FAD83C077E3D3E 2.4服务器得到JSESSIONID,在服务器内存中查询是否存在对应的编号的session对象。 2.5如果找到对应的session对象,返回这个对象。

    session核心方法: HttpSession session=request.getSession();

    session细节: 4.1设置session有效时长 注意:关闭浏览器并不会导致session对象销毁。 4.1.1服务器默认30分钟收回session对象,最后一次访问session开始计算。 4.1.2设置session代码有效时长 void setMaxInactiveInterval(int interval) 以秒为单位 4.1.3全局设置session的有效时长,在web.xml文件中设置,以分为单位 4.1.4立即手动销毁session对象:invalidate() 4.2 request.getSession()方法 HttpSession getSession()/getSession(true)创建或得到session对象。当前没有找到对应的session 对象,创建新的session对象 HttpSession getSession(false) 得到session对象。如果找不到,则返回null

    转载请注明原文地址: https://ju.6miu.com/read-670752.html

    最新回复(0)