我正在编写我的第一个GWT应用程序,而且我正在实现会话。
目前我正在生成一个
HttpServletRequest request = getThreadLocalRequest();
HttpSession httpSession = request.getSession(true);
httpSession.setMaxInactiveInterval(1000 * 60 * 2);//2min
然后在显示任何屏幕之前通过RPC调用服务器验证会话是否与用户相同
HttpServletRequest request = getThreadLocalRequest();
HttpSession httpSession = request.getSession(false);
if(user.getSessionId().equals(result.getSessionId()))
//display screen
我的问题是关于setMaxInactiveInterval();非活动超时似乎对我来说根本不起作用 - 会话在两分钟后自身不会过期
我正确的方式吗?谢谢。
通常在web.xml中有这个
<session-config>
<session-timeout>30</session-timeout> <!-- 30 minutes -->
</session-config>
httpSession.setMaxInactiveInterval(1000 * 60 * 2);//2min
这不是2分钟,而是2000分钟。
https://docs.oracle.com/javaee/6/api/index.html?javax/servlet/http/HttpSession.html
javax.servlet.http.HttpSession.setMaxInactiveInterval(int interval)
指定servlet容器使此会话失效之前的客户端请求之间的时间(以秒为单位)。