cookie:
Cookie是不能跨浏览器的。(很好理解,cookie保存在浏览器端,那么肯定是不能跨浏览器的。)
cookie除了name和value属性,还要maxage属性(过期时间)如果不设置或者<0,关闭浏览器就失效了。
设置maxAge=0,就表示立马删除这个cookie
设置跨域cookie
比如想一个cookie在www.baidu.com,zhidao.baidu.com中共享
设置cookie的domain为cookie.setDomain(".baidu.com")
cookie.setPath("/")
HttpSession
保存在服务端。
session生命周期在浏览器关闭之前。主要是关闭浏览器后再开浏览器就会得到新的sessionId,找不到原来的session了。
session原理
request.getSession()
获取cookie中的JsessionId
1、获取JsessionId不存在,创建session保存起来,把新创建的JsessionId保存道cookie中
2、JsessionId存在,通过JsessionId查找session对象,如果没查到,创建session,将session保存起来,把新创建的JsessionId保存到cookie中
3、JsessionId存在,找到session,返回session。
服务器不会马上给你创建session,在第一次获取session时创建。
jsp默认会创建session
配置session的最大不活动时间
req.getSession().setMaxInactiveInterval(30);
web.xml中配置
<session-config>
<session-timeout>30</session-timeout>
</session-config>
默认时常30分组。
URL重写
session依赖于cookie的sessionId,如果浏览器禁用了cookie。可以使用URL重写方式来维护sessionId。就是在所有请求参数上加JsessionId参数。
网友评论