我正在构建基于Google Application Engine(GAE)和Google Web Toolkit(GWT)的Web应用程序。
客户端(GWT)以下列方式与服务器交互:
服务器收到用户点击后,会将其存储在数据库中,同时保存用户标识符。由于我不想使用任何形式的用户身份验证,我尝试使用HTTP会话来区分不同的用户。
使用以下指示在servlet中创建HTTP会话:
public SessionInfo getSessionInfo() {
HttpServletRequest request = this.getThreadLocalRequest();
HttpSession session = request.getSession();
if(session.isNew()) session.setMaxInactiveInterval(-1);
Integer i = (Integer) session.getAttribute("access_count");
if(i == null) {
i = new Integer(1);
} else {
i = new Integer(i.intValue()+1);
} // if
session.setAttribute("access_count", i);
SessionInfo sInfo = new SessionInfo(session.getId(), i.intValue());
return sInfo;
}
从文档中我理解了以下说明:
session.setMaxInactiveInterval(-1);
会使会话永不过期。但是,每次在浏览器上刷新页面时都会创建一个新会话。会话已启用。
我有两个问题:
感谢。
答案 0 :(得分:0)
我不明白为什么每次都会创建一个新会话,你的代码对我来说很好。您可以尝试在web.xml
中设置超时,看看它是否有任何区别:
<session-config>
<session-timeout>-1</session-timeout>
</session-config>