我是第一次使用 servlet,但我取得了很大进步。我的 servlet 运行良好。所以我决定放置一个身份验证机制,如果用户提供正确的密码和 ID,它会创建一个 session 。但是 session 对我来说是全新的。所以我不太理解逻辑,但我已经开始理解了。
正如我之前提到的,我的一个 servlet 专门用于登录。如果密码正确,则会创建一个 session (我不会在 session 中存储任何对象/数据)并通知客户端(remoteUser)密码已被接受并创建 session 。客户端所做的是访问同一应用程序中的任何其他 servlet。其他 servlet 获取 session 以检查它是否已创建且有效(未超时)。为此,在其他那些 servlet 中,我通过以下方式获得 session :
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.
但这会返回一个空值。所以我尝试过:
HttpSession session = req.getSession();
并检查了 session.isNew();我是一个新的 session 。所以我在登录 servlet 中创建的 session 不能用 req.getSession() 调用;在另一个 servlet 中。
PS:在登录servlet中创建session时:session.setMaxInactiveInterval(300);//5 分钟
非常感谢您的回复!
最佳答案
使用 Google App Engine 时,您必须专门启用 session 支持。参见 http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions .
关于java - 无法在java servlet中获取 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6874091/