会话技术——Session和Cookie

一、会话技术

1、什么是会话:客户打开浏览器访问一个网站,访问完毕之后,关闭浏览器。这个过程称之为一个会话。就如同打电话。

2、会话在编程中主要解决的问题是:保存各个用户的数据信息。

3、保存用户各自数据的主要技术:  

  客户端技术:Cookie  

  服务端技术:HttpSession

二、Cookie

1、获取Cookie采用request.getCookies()

2、设置Cookie采用response.addCookie(Cookie c)

3、cookie的属性  

  3.1maxAge:默认是浏览器的进程。也就是说不设置该属性,浏览器关闭后,cookie就被删除了。    也可以设置其存活时长,单位为妙  

  3.2path:默认是产生cookie的应用的访问路径。   

    如果设置了路径,只能被包含此路径的资源访问   

    假如设置路径为“/day06”,也就是说,该cookie只能被day06这个应用访问   

    假如设置路径为“/day07”(day06的应用增加的cookie),该cookie只能被day07访问,而day06是访问不到的   

    假如设置路径为“/”,该cookie可以被同一个服务器的所有应用访问

三、Session

1、IE7及以下版本,新开窗口都会开启一次新会话

2、每个客户端都有各自的Session对象,以SessionId标识。

3、Session技术实际上是借助Cookie技术实现的。在创建session时,会将该Session的ID以cookie:JSESSIONID=sessionId的形式写给客户端。

4、Session默认情况下何时失效?

  时间到了,默认是30分钟

  更改Session的失效时间方法: 修改web.xml文件,在根元素中增加以下内容:

<session-config>   
    <session-timeout>1</session-timeout><!--单位为分钟-->  
</session-config> 

5、客户端禁用了cookie怎么办?

  解决办法:URL重写。以下两个方法可以实现重写。要对该站多有的URL都要进行重写。

  (1)response.encodeRedirectURL(java.lang.String?url) :针对重定向的地址进行重写

  (2)response.encodeURL(java.lang.String?url):其他地址进行重写

(在老的浏览器中,用localhost访问网站,即使禁用了cookie,cookie还是有效的)

原文地址:https://www.cnblogs.com/FlySheep/p/3405286.html