无法在java servlet中获取会话

时间:2011-07-29 13:43:03

标签: java google-app-engine session servlets

我第一次使用servlet但是我取得了很多进展。我的servlet运行良好。所以我决定建立一个认证机制,如果用户提供正确的密码和id,就会创建一个会话。但会议对我来说是全新的。所以我并不完全遵循逻辑,但我已经开始理解了。

正如我之前提到的,我的一个servlet专门用于登录。如果密码正确,则创建会话(我不在会话中存储任何对象/数据),并通知客户端(remoteUser)接受密码和会话已创建。客户端做的是访问同一应用程序中的任何其他servlet。其他servlet获取会话以检查它是否已创建且有效(未超时)。为此,在其他servlet中我得到了会话:

HttpSession session = req.getSession(false); //false because this is not the place to create a session. sessions should only be created in the login servlet.

但是这会返回null。所以我试过了:

HttpSession session = req.getSession();

并使用session.isNew()进行检查;而我这是一个新的会议。因此,我在登录servlet中创建的会话无法使用req.getSession()调用;在另一个servlet中。

PS:在登录servlet中创建会话时:session.setMaxInactiveInterval(300); // 5分钟

非常感谢您的回复!

1 个答案:

答案 0 :(得分:5)

使用Google App Engine时,您必须专门启用会话支持。请参阅http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions