【问题标题】:Why does Session Management is Not Possible by Using GenericServlet?为什么无法使用 GenericServlet 进行会话管理?
【发布时间】:2019-07-14 14:30:24
【问题描述】:

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

所以我也有兴趣了解

【问题讨论】:

    标签: java servlets jakarta-ee servlet-filters


    【解决方案1】:

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

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

    【讨论】:

    • GenericServlet 不是特定于协议的。
    • 嗨@sanket 不! Generic Servlet 与协议无关,Http Session 属于 HTTP,所以如果我们想使用 session,我们必须使用 HTTP Servlet
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-02-07
      • 2012-12-15
      • 2013-12-18
      • 1970-01-01
      • 2016-04-26
      • 2014-09-21
      • 2017-01-23
      • 1970-01-01
      相关资源
      最近更新 更多