【问题标题】:Servlets doGet doPost AND?Servlet doGet doPost AND?
【发布时间】:2011-07-09 15:52:23
【问题描述】:

美好的一天!

我正在阅读 Head First Servlets 和 JSP,它说 99% 的 servlet 都使用了 HttpServlet。剩下的 1% 是多少?它说在现实世界中,99.9% 的 servlet 覆盖了 doGet() 或 doPost() 方法。剩下的 0.1% 是多少?还是不值得一提这就是为什么书中没有提到它?

谢谢。

【问题讨论】:

    标签: java servlets


    【解决方案1】:

    1% 的人没有使用抽象的HttpServlet 类。所以他们使用Servlet接口而不扩展HttpServlet

    目前在 Java EE API 中,只有另一个 Servlet 可以做到这一点:FacesServlet,它是 Java EE 提供的 MVC 框架 JavaServer Faces (JSF) 背后的核心控制器。 JSF 使您能够跳过收集、转换和验证参数、更新模型值和调用特定操作方法所必需的所有繁琐过程和样板代码。

    但在撰写本书时,作者可能并未意识到这一点。截至目前,JSF 肯定不只占 1%。在 理论上 可以为 HTTP 以外的其他协议实现 Servlet,例如 FTP。这不是由标准 Java EE API 提供的,但是有一些第 3 方“FtpServlet”类。而且我相信一些 Portlet API 也使用非HttpServlet 类(它们只是实现Servlet 并且不扩展HttpServlet)。

    至于HTTP methods,在HTTPGETPOST旁边还有HEADPUTOPTIONS等。但我认为0.1%被严重低估了。 HEAD 肯定更常用,想想 servletcontainer 自己的 DefaultServlet(就像 Tomcat 一样)。 HEAD 在浏览器缓存请求中起着重要作用。但是当谈到“本土”servlet 时,确实是GETPOST 引起了人们的注意。

    另见:

    【讨论】:

      【解决方案2】:

      您可以使用 servlet 编写 FTP。那可能是另外 0.1%。

      【讨论】:

        【解决方案3】:

        你可以使用

        protected void service(HttpServletRequest request, HttpServletResponse response)
        

        它可以处理 GET 和 POST 请求。 这只是一个附录。 =]

        【讨论】:

          猜你喜欢
          • 2011-08-18
          • 2012-02-27
          • 2011-01-21
          • 2014-05-23
          • 1970-01-01
          • 2014-06-02
          • 2015-04-01
          • 2017-04-19
          • 2020-11-07
          相关资源
          最近更新 更多