1

我的应用程序的一部分具有用于开销状态板的单个页面视图。对运行顶部显示器的服务器的访问位于访问受控位置,只有少数关键人员可以访问。我遇到的问题是会话在设定的时间后过期,需要有人亲自去服务器并重新加载页面。不用说,当关键人物不在时,这会产生一些问题。

此应用程序运行在 Tomcat 下,通过 Spring security 控制安全性。我将如何仅更改此页面的会话超时?

[编辑]

我采用了@sotirios-delimanolis 建议的方法。尽管如果用户导航到此页面然后导航离开,我仍然需要找到一种优雅的方法来扭转延长的会话超时,但这似乎对我有用。

以下是实现此功能的相关代码片段:

    @RequestMapping(value="BigBoard", method = RequestMethod.GET) 
    public void getBigBoard(HttpServletRequest request, Model model) {

         HttpSession session = request.getSession();
         session.setMaxInactiveInterval(604800);
4

2 回答 2

1

我不知道控制器、资源提供者等如何访问您的页面,但您必须在处理该请求的某处添加一个Servlet、或处理程序方法FilterHandlerInterceptor该方法基本上执行以下操作

int seconds = ...; // timeout
request.getSession(true).setMaxInactiveInterval(seconds);

该会话现在在容器使其无效之前具有指定的超时。

请注意,如果用户以某种方式转到其他页面,他们会话的超时将保持您在上面设置的值,除非您更改它。

于 2013-10-01T18:37:15.547 回答
0

让页面不时刷新(使用 <meta http-equiv="refresh" content="60">)或添加一些 Ajax 轮询以避免会话超时。

于 2013-10-01T18:51:56.710 回答