session之我见

37.  一千万个人访问网站 ,就创建一千万份session,你一份,我一份,getSession()可以拿到相应的session.    比如:张三来拿到session,就request.getSession();            还有带参数,

request.getSession(true);  false;

 

session跟cookie类似,也跟窗口绑定,通过这个servlet设置的session,无法再开一个窗口来显示session中的值。

 

开两个窗口就相当于两个不同的人,但是开子窗口可以拿到session中的值,什么叫开子窗口,,,,在ie打开的情况下,再选文件,点新建选项卡,这就叫打开一个子窗口。

 

 

38.  session有一个超时的概念,比如一千万个人在购物,有五百万已经购物完了,不可能一直还常驻内存,销毁的目的是释放资源,session默认的超时时间30分钟,如果你在项目中没有配,它就用tomcat  conf目录下的缺省配置。当你30分钟鼠标没有响应的时候session就丢掉了,有些特殊的应用,比如计时的什么东西,要几个小时,你就要自己设置。最好的例子就是在线股票行情的应用,你如果一过30分钟没有人操作,你session就断了,我损失就大了。

 

 

超时的目的,就是释放资源。

 

 

40.  request的时候,就是请求服务器的时候创建session的时候,也就创建了一个sessionid,当response的时候,response,服务器返回这个sessionid,每次都带着sessionid在传,因为http是无状态的,

,可以用httplook监测到这个情况。

 

如果第一次请求的时候,那个jsp页面,他的  session="false" 的话,他就不会创建session了。

 

第一次请求的时候,服务器会创建一个sessionid给你,客户端会将sessionid写入cookie       但是  以后你再请求的时候,你就会把带着sessionid带回传。      |

  |

  |

 

还有cookie是可以禁用的。禁用了sessionid就没有了。客户端保存不了cookie啊,

 

41.  怎么解决上述,客户不小心禁用cookie或者有意禁用cookie呢?这里说的禁用,是不让cookie往客户机里面写一个放cookie的文件,就是不会在客户机上面产生一个什么。。什么。。.txt  的文本文件。但是这个sessionid是传过来了,放在哪呢?放在客户机内存里面。     采用URL重写。所谓的url重写,就是把sessionid每次访问的时候都添加到地址栏的后面。每个url后面都带sessionid,就叫url重写。url重写,不是重定向,我说怎么这么陌生呢.     一般情况不使用url重写,一般用session不用url重写,url重写麻烦,每一个url都要重写

你可能感兴趣的:(tomcat,应用服务器,jsp,servlet,IE)