我是第一次使用 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.
但这返回一个空值。所以我尝试过:
HttpSession session = req.getSession();
并使用 session.isNew(); 检查对我来说这是一个新的会议。因此,我在登录 servlet 中创建的会话无法使用 req.getSession(); 调用。在另一个servlet 中。
PS:在登录servlet中创建会话时:session.setMaxInactiveInterval(300); //5分钟
非常感谢您的任何回复!
使用 Google App Engine 时,您必须专门启用会话支持。看http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)