Session

打开一个浏览器如果创建了session那么这个浏览器对应一个session,再打开一个就不能用了(IE8以上除外)。

原因: 

session基于cookie,每个session被创建的时候都有一个ID,并把这个ID以cookie的方式发给浏览器。

这个存id的cookie没有设有效期,所以浏览器关了cookie就消失了。

解决办法:

修改默认的cookie

String sessionid = session.getId();

Cookie cookie = new Cookie(“JSESSIONID”,sessionid);

cookie.setPath(“/session”);

cookie.setMaxAge(30*60);

response.addCookie(cookie);

如果用户把cookie禁用了,解决办法如下:

url重写。在url地址后边跟上session id号,现成方法如下":

String url1 = esponse. encodeURL(“/session/servlet/SessionDemo1”);

该方法会自将为url变成

“/session/servlet/SessionDemo1;jsessionid=***”  ***为session id号

 

配置文件自动摧毁session

在tomcat的web.xml中可以配置:

<session-config>

   <session-timeout>10</session-timeout>

</session-config>

session保存十分钟。

 

在程序中摧毁session

session.invalidate();

 

request.getSession();//获取session,如果没有就创建。

request.getSession(false);//只获取不创建session

posted @ 2013-12-01 16:11  剑握在手  阅读(241)  评论(0编辑  收藏  举报
返回顶部↑