假设我有一个Web应用程序,在web.xml中定义了一个servlet。

然后,将其部署在Tomcat上。

然后,我打开浏览器并转到该servlet的链接,该链接已被调用。

然后关闭浏览器窗口。

会话如何表现?在这种情况下如何创建,销毁它?

如果此Servlet与所有Web应用程序“分离”,并且仅使用post&get获取参数,那么它根本不需要Session,应该在doGet(),doPost()末尾使用Session.invalidate吗?

最佳答案

Servlet容器通常使用(1)HTTP cookie或(2)在每个URL中添加额外的参数jsessionid来跟踪会话。

当用户访问该站点且尚不存在会话时,将为他创建一个新会话,包括相应的HttpSession。如有必要,可以将用户重定向到登录页面。

Session.invalidate的效果基本上是:“为此用户放弃当前会话。如果他访问站点上的另一个页面,则将创建一个新会话”。

到目前为止,我知道,会话无效通常用于实现注销功能。

我不会在您的“分离的” servlet中调用Session.invalidate,它将干扰其他页面。基本上,您不需要关心servlet中的会话,也不会使用它。

也许也看看有关disabling the session的问题。

09-30 17:14
查看更多