设置Tomcat session有效期


设置

Tomcat session

有效期

 

 

1. 

server.xml

中定义

context

时采用如下定义:

 

<Context path="/livsorder" docBase="/home/httpd/html/livsorder"    

defaultSessionTimeOut="3600" isWARExpanded="true"    

isWARValidated="false" isInvokerEnabled="true"    

isWorkDirPersistent="false"/> 

2. 

web.xml

中通过参数指定:

 

<session-config> 

<session-timeout>30</session-timeout>    

</session-config> 

其中

30

表示

30

分钟

 

3. 

在程序中通过

servlet api

直接修改

 

HttpSession ses = request.getSession(); 

ses.setMaxInactiveInterval(10); 

设置单位为秒,设置为

-1

永不过期。

 

4.

在当前应用下的

web.xml 

文件中加入

 

<session-config> 

<session-timeout>30</session-timeout>    

</session-config> 

其中

30

表示

30

分钟

 

附录:

 

1

)超时时间的设定

 

      tomcat

的会话超时可以在多个级别上设置:

tomcat

实例级别、

Web

 

用级别、

servlet

级别以及运行

Context

代码级别。

 

      

较低级别的设定会覆盖较高级别的设定。

 

      

一般常用的是在前面两个级别上设置,

分别在

 

/conf/web.xml

/webapps/yourapp/WEB-INF/web.xml

形如:

 

      <session-config> 

          <session-timeout>60</session-timeout> 

      </session-config> 

     

单位是分钟

,

默认是

30

分钟

,

这里我们修改为

1

个小时。

 

  

2

)重启时保持会话

 

    

在关闭

Tomcat

实例

/

取消

Web

应用部署时,缺省会把当前的活动会话保存到硬盘上,并在重启启动

/

 

时在把会话从硬盘上加载到内存中。

 

    

文件保存在各目录下的

SESSIONS.SER(好像是在临时文件里(work下))

中。有时可能会话中保存了敏感信息,或者不希望使用这个特

 

性,可以配置

Context.xml

文件关闭这个选项。

 

    

配置

 

manager.pathname == ""

即可,形如:

 

                

<Manager pathname="" />   

不过话说

Tomcat

关于会话的设定也不甚直观,在其文档中明确的说

 

明,

Manager

组件的工作就是

session manager

,可以设置

maxInactiveInterval

,而

web.xml

中有可以设定

 

session-timeout

。再加上全

局、应用,不同地方定义的超时时间撞到一起时,又有优先级的问题

,

处理有些混乱。


你可能感兴趣的:(设置Tomcat session有效期)