为什么无法使用GenericServlet进行会话管理?

时间:2019-02-20 19:45:46

标签: java servlets java-ee servlet-filters

在Java Servlet中,每当我们通过扩展 GenericServlet 类来创建Servlet类时,就无法进行会话管理。

所以我很想知道同样的事情

2 个答案:

答案 0 :(得分:2)

HTTP Session是HTTP特定的东西。通用Servlet不知道HTTP概念,只有HTTPServlet知道。

关于下一个问题:“什么时候需要GenericServlet?”答案是never

答案 1 :(得分:0)

GenericServlet中没有特定于协议的功能,它是基本的通用Servlet接口的实现。基于Servlet的会话仅设计用于使用HTTP协议的交互,该协议具有Servlet容器模拟连续用户会话所需的两个关键功能:cookie和支持URL重写的基于URL的导航。因此,Servlet API将HttpSession接口放置在javax.servlet.http包中,并且Session引用仅可通过该包中的类使用。

因此,GenericServlet类实现Servlet,ServletConfig和Serializable接口。它提供了除服务方法之外的所有这些接口方法的实现。 GenericServlet类可以处理任何类型的请求,因此它与协议无关。 您可以通过继承GenericServlet类并提供service方法的实现来创建通用servlet。