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

时间:2012-09-10 10:45:00

标签: java servlets

我多年来一直在编写servlet和过滤器,这一直让我感到烦恼 - 将ServletRequestServletResponse参数检查并转换为HttpServletRequestHttpServletResponse,尤其是过滤器,因为没有标准HttpFilter基类来为你做这件事 - 与servlet不同。

问题是 - 你什么时候会看到其他任何HttpServletRequest / HttpServletResponse被传递给你的servlet /过滤器,如果你这样做你应该怎么做?

2 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:0)

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

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

所有这些都是HTTP协议。

规范还要求:

  

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

有GenericServlet的原因 - > HttpServlet将具有泛化 - > API中的API结构中的专业化层次结构。