现在的位置: 首页 > 综合 > 正文

tomcat5 session保存问题

2013年05月01日 ⁄ 综合 ⁄ 共 845字 ⁄ 字号 评论关闭

tomcat5 session问题,没验证tomcat其他版本
tomcat在重启后,默认是恢复session数据的,
它在tomcat目录下的work目录下,每个应用程序会有一个Session.ser文件,用来保存session数据。当重启后,会加载。

此时如果客户端没有清除cookie数据,或者清除不了(iPhone下的Safari),就会导致用户使用使用以前的那个session。

这时,有几种办法处理,
1 设置Session失效时间
在web.xml文件中,位于<servlet-mapping>和<welcome-file-list>元素之间加入以下三行(分钟):
    <session-config>    
        <session-timeout>30</session-timeout> 
    </session-config> 
2 手工删除Session.ser文件

3 创建一个与应用程序同名的 xml 文件,比如 webapp 的 Context Path 为 test, 那么文件名即为 test.xml。内容如下:
    <Context path="/test" docBase="test" debug="0" privileged="true">
        <Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false">
            <Store className="org.apache.catalina.session.FileStore" />
        </Manager>
    </Context>
    saveOnRestart 参数值为false即不保留session。该 Manager 还有很多属性,具体参见文档。注意,虽然是不保存文件,但子元素<Store> 必不可少。
    将文件放到 Tomcat安装目录/conf/Catalina/localhost/ 路径下,重启后生效。

抱歉!评论已关闭.