Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 帮助捕获spring中的会话超时_Java_Spring_Session_Timeout - Fatal编程技术网

Java 帮助捕获spring中的会话超时

Java 帮助捕获spring中的会话超时,java,spring,session,timeout,Java,Spring,Session,Timeout,我有一个简单的Spring3MVC应用程序。我使用的是sessionAttribute,除了让页面停留30分钟或更长时间外,其他一切都很好。然后我得到一个 org.springframework.web.HttpSessionRequiredException 告诉我会话中找不到我的对象 我在想,当会话超时时,我需要以某种方式重定向回同一页面。我不知道如何正确地使用spring 不需要登录,我已经在检查对象是否为空 如有任何建议,将不胜感激 谢谢您可以将错误页面绑定添加到HttpSessionR

我有一个简单的Spring3MVC应用程序。我使用的是sessionAttribute,除了让页面停留30分钟或更长时间外,其他一切都很好。然后我得到一个

org.springframework.web.HttpSessionRequiredException

告诉我会话中找不到我的对象

我在想,当会话超时时,我需要以某种方式重定向回同一页面。我不知道如何正确地使用spring

不需要登录,我已经在检查对象是否为空

如有任何建议,将不胜感激


谢谢

您可以将错误页面绑定添加到HttpSessionRequiredException,它将重定向到应用程序的第一页

示例:

web.xml

<web-app>
    <error-page>
        <exception-type>org.springframework.web.HttpSessionRequiredException</exception-type>
        <location>/index.jsp</location>
    </error-page>
</web-app>

org.springframework.web.HttpSessionRequiredException
/index.jsp

您无法直接重定向“回到同一页”。会话已消失,即客户端上的cookie不再对应于servlet容器中的任何会话,因为会话对象已从内存中删除。完全地,不可逆转地

您可以增加会话超时。这是应用程序配置,而不是Spring:

web.xml:

   <session-config>
     <session-timeout>120</session-timeout>
   </session-config>

120
会给你两个小时的空闲时间

请注意,会话不是免费的。它们消耗资源(序列化时的内存和磁盘)。如果同一用户可以多次重新登录,他们将有多个空闲会话,并可能导致您拒绝服务


另外,如果您对gone会话满意,并且只想立即建立另一个会话,那么您始终可以在过滤器中完成,无论是否为Spring。春天可能有自己的听众。您必须在全新的会话中加入一些内容,才能使您的请求生效。

您能举个例子吗?谢谢,这看起来会起作用。我只是想让我的错误页面正确映射。从我注意到的情况来看,它看起来将通过spring dispatcher servlet映射回来,所以我需要在我的一个控制器中添加一个映射才能转到这个页面?@blong824,我不太了解spring mvc,但我的解决方案是web应用程序中的典型解决方案,所以我认为您应该只进行上面的错误页面映射,并且应该可以工作。