我第一次使用servlet,但已经取得了很大进展。我的servlet运行良好。因此,我决定添加一个身份验证机制,如果用户提供正确的密码和ID,则会创建会话。但是,对于我来说,会话是全新的东西。因此,我不太理解逻辑,但已开始理解。
正如我之前提到的,我的某个servlet专门用于登录。如果密码正确,则会创建会话(我不在会话中存储任何对象/数据),并通知客户端(remoteUser)密码被接受并创建会话。客户端所做的就是到同一应用程序中的任何其他servlet。其他servlet获取会话以检查它是否被创建和有效(未超时)。为此,在这些其他servlet中,我使用以下代码获取会话:
但是这返回了一个null。所以我尝试过:
正如我之前提到的,我的某个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分钟
非常感谢您的任何回应!