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