我有一个在WebLogic服务器上运行的标准J2EE Web应用程序。我想通过web.xml中的元数据设置来处理会话超时。我尝试使用以下设置
<error-page>
<error-code>408</error-code>
<location>/jsp/testErrorPage.jsp</location>
</error-page>
然而它没有用。
答案 0 :(得分:1)
以下是408请求超时的说明,
Web服务器(运行Web站点)认为
之间的时间间隔太长
- 在客户端(例如您的Web浏览器或我们的CheckUpDown机器人)与服务器之间建立IP连接(套接字)
- 收到该套接字上的任何数据,因此服务器已断开连接。
醇>
例如,假设您正在尝试登录。但是,由于某些原因,没有收到任何数据。 然后是408请求超时。
但在你的情况下,你正在尝试处理会话超时。这意味着,客户端尚未与服务器建立连接 在一段特定的时间内(例如,30分钟)。意味着,你在没有做任何活动的情况下闲置30分钟。 这就是会话超时的含义。
要处理会话超时,您必须在web.xml中包含以下代码
<session-config>
<session-timeout>30</session-timeout>
</session-config>
以上代码表示如果您闲置30分钟,您的会话将被销毁。
此外,您必须编写一个实现HttpSessionListener的自定义侦听器,并将其配置为web.xml
中的listeners
当您的会话超时时,将执行此代码。您可以尝试使用HttpSessionListener#sessionDestroyed
方法重定向到错误页面。
如果此解决方案不是您想要的,而是您正在寻找实际解决408错误的根本原因,那么fixing 408 errors页面可能会有所帮助。
答案 1 :(得分:0)
会话超时是服务器端事件,并且没有直接的方式来通知浏览器服务器端会话超时。意思是,浏览无法在没有任何请求的情况下获得响应。这就是HTTP的工作原理。
通常实现的方法之一如下: