我的部分应用程序有一个开销状态板的单页面视图。对运行开销显示的服务器的访问位于访问控制的位置,只有少数关键人员可以访问。我遇到的问题是会话在一段时间后过期,需要有人亲自去服务器并重新加载页面。毋庸置疑,当关键人物不在时,这会产生一些问题。
此应用程序在Tomcat下运行,安全性通过Spring安全性进行控制。如何仅针对此页面更改会话超时 ?
[编辑]
我采取了@ sotirios-delimanolis建议的方法。虽然我仍然需要找到一种优雅的方法来反转延长的会话超时,如果用户导航到此页面然后导航,这似乎对我有用。
以下是实现此目的的相关代码片段:
@RequestMapping(value="BigBoard", method = RequestMethod.GET)
public void getBigBoard(HttpServletRequest request, Model model) {
HttpSession session = request.getSession();
session.setMaxInactiveInterval(604800);
答案 0 :(得分:1)
我不知道您的网页是如何被控制器,资源提供商等访问的,但您必须在某处添加Servlet
,Filter
,HandlerInterceptor
或处理程序方法在处理该请求时基本上执行了以下操作
int seconds = ...; // timeout
request.getSession(true).setMaxInactiveInterval(seconds);
该容器现在在容器使其无效之前具有指定的超时。
请注意,如果用户以某种方式转到某个其他页面,则会话的超时将保持您在上面设置的超时,除非您更改它。
答案 1 :(得分:0)
让页面不时刷新(使用< meta http-equiv =“refresh”content =“60”>)或添加一些Ajax轮询以避免会话超时。