无法在java servlet中获取会话

Gen*_*nom 6 java session google-app-engine 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.
Run Code Online (Sandbox Code Playgroud)

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

HttpSession session = req.getSession();
Run Code Online (Sandbox Code Playgroud)

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

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

非常感谢您的回复!

dds*_*dso 5

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

  • 非常感谢!!!这节省了很多时间.我启用了它它的工作! (2认同)