什么时候用HttpServletRequest / Response之外的任何东西调用javax.servlet.Filter.doFilter(ServletRequest req,ServletResponse res)?

我多年来一直在编写servlet和filter,它总是让我感到烦恼 – 将ServletRequestServletResponse参数检查并转换为HttpServletRequestHttpServletResponse ,特别是对于filter,因为没有标准的HttpFilter基类来执行此操作对你而言 – 与servlet不同。

问题是 – 你何时会看到HttpServletRequest / HttpServletResponse传递给你的servlet /filter的其他任何东西,如果你这样做,你该怎么办?

在一些尚未实现的世界中,除了HttpServlet之外还有其他servlet类型。

从我通过API了解到的,servlet规范是专门为HTTP / web使用创建的servlet框架。

servlet规范参考部分中提到的协议都只与HTTP相关。
RFC 1945超文本传输​​协议(HTTP / 1.0)
RFC 2616超文本传输​​协议(HTTP / 1.1)
RFC 2617 HTTP身份validation:基本和摘要式身份validation
RFC 2324超文本咖啡壶控制协议(HTCPCP / 1.0) – 这是基于HTTP的

所有这些都是HTTP协议。

此规范还要求:

所有servlet容器都必须支持HTTP作为请求和响应的协议,但也可能支持其他基于请求/响应的协议,如HTTPS(HTTP over SSL)。

并且拥有GenericServlet – > HttpServlet的原因是在API中的API结构中具有Generalization – >朝向Specialized类层次结构。