我正在编写我的第一个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();非活动超时对我来说似乎不起作用 - 会话在两分钟后不会自行失效
我是以正确的方式去做的吗?感谢。
P.S。我用它作为跳跃:http://snipt.net/javagner/session-in-gwt/
答案 0 :(得分:1)
通常在web.xml中有这个
<session-config>
<session-timeout>30</session-timeout> <!-- 30 minutes -->
</session-config>
答案 1 :(得分:0)
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容器将使此会话无效。