Jas*_*tos 2 session tomcat servlets tomcat6 httpsession
我在Tomcat服务的Web应用程序中遇到Session超时有点麻烦.通过阅读Tomcat的文档,会话可以在web.xml文件中配置一段时间后到期.
<session-config>
<session-timeout>30</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)
Quesion)这是否意味着从为用户创建会话的30分钟后?或者从上次访问会话开始30分钟?
如果是,正如我原先想的那样,从上次访问会话开始的30分钟后,我似乎没有看到这种行为.当我使用该网站时,我的会话似乎丢失了.除了这一个设置之外,还有其他方法可以配置会话行为吗?有什么我想念的吗?
Apache Tomcat/6.0.20
当Web浏览器连接到您的应用程序时,会启动会话.当最长不活动时间过去(30分钟)时,Tomcat会关闭服务器上的会话.
只要Web浏览器上有活动,例如刷新当前页面或浏览应用程序控件下的其他页面,就会重置此超时.仅保持浏览器窗口打开不会使会话保持打开状态,因为它不会在浏览器上生成任何活动.
您可以如您所述在web.xml文件中进行设置.
您还可以session通过调用为对象设置它.setMaxInactiveInterval(int interval)
这指定在servlet容器使此会话无效之前客户端请求之间的时间(以秒为单位).
你必须确保,该饼干被启用为您的浏览器.否则,您将为每个请求创建一个新会话.您应该HttpServletResponse.encodeURL(String url)为应用程序中的每个URL 调用.来自api doc:
"通过在其中包含会话ID来对指定的URL进行编码,或者,如果不需要编码,则返回URL不变.此方法的实现包括确定是否需要在URL中编码会话ID的逻辑.例如,如果浏览器支持cookie,或关闭会话跟踪,则不需要URL编码.
对于健壮的会话跟踪,servlet发出的所有URL都应该通过此方法运行.否则,URL重写不能用于不支持cookie的浏览器."
| 归档时间: |
|
| 查看次数: |
6488 次 |
| 最近记录: |