session

服务器用于缓存数据会话技术

默认情况:session依赖于cookie

对象HttpSession

1.session原理:

JavaWeb之Session技术_JavaWeb

根据上图分析如下:

a.浏览器发送请求到服务器,并交给一个servlet进行处理。此时request.getSession()第一次创建session对象,将sessionId以cookie的方式发送给浏览器。同时在服务端会保存session,并且,有唯一的id。

b.服务端将响应的信息发送到客户端,客户端会保存cookie信息。

c.当浏览器再次请求的时候,并交给另一servlet-twoservlet进行处理,此时request.getsession()会首先在服务端找是否有匹配的session,如果匹配,则不创建。

getSession()用于获得session对象,并以cookie方式将session id发送浏览器

如果没有特殊的cookie getSession方法创建session对象

2.session生命周期

创建:第一次使用

销毁:

过期,默认30分钟,%tomcat%/conf/web.xml配置  

 

 

 

执行invalidate() ,进行销毁  

setMaxInactiveInterval(int interval) 设置生命周期的时间,单位秒  

非正常关闭  

操作属性--用于缓存数据

xxxAttribute

3.URL重写

如果浏览器禁用了cookie,通过指定的api给URL后面追加特殊的标记,将session id传递给服务器

http://......./day10/oneServlet;jsessionid=23542958BF73D36C6F4086173606AA9B

encodeURL(url) 重写URL,重写普通的URL【】

encodeRedirectURL(java.lang.String url) ,专门用于处理重定向 URL重写。

如果参数是空字符串,内容不同