HttpServlet的

时间:2020-01-09 10:36:22  来源:igfitidea点击:

" javax.servlet.http.HttpServlet"类比"简单Servlet"示例中显示的" GenericServlet"稍微高级一些。

HttpServlet类读取HTTP请求,并确定该请求是否为HTTP GET,POST,PUT,DELETE,HEAD等,并调用相应的方法。

回应仅HTTP GET请求,我们将扩展HttpServlet类,并仅覆盖doGet()方法。这是一个例子:

public class SimpleHttpServlet extends HttpServlet {

  protected void doGet( HttpServletRequest request,
                        HttpServletResponse response)
        throws ServletException, IOException {

      response.getWriter().write("<html><body>GET response</body></html>");
  }
}

HttpServlet类具有我们可以为每个HTTP方法(GET,POST等)覆盖的方法。以下是我们可以覆盖的方法的列表:

  • doGet()
  • doPost()
  • doHead()
  • doPut()
  • doDelete()
  • doOptions()
  • doTrace()

大多数情况下,我们只想响应HTTP GET或者POST请求,因此我们只需覆盖这两种方法。

如果要处理来自给定Servlet的GET和POST请求,则可以覆盖这两种方法,而一个调用另一个。方法如下:

public class SimpleHttpServlet extends HttpServlet {

  protected void doGet( HttpServletRequest request,
                        HttpServletResponse response)
        throws ServletException, IOException {

      doPost(request, response);
  }

  protected void doPost( HttpServletRequest request,
                         HttpServletResponse response)
        throws ServletException, IOException {

      response.getWriter().write("GET/POST response");
    }
}

我建议我们尽可能使用HttpServlet而不是GenericServlet。与GenericServlet相比,HttpServlet更加易于使用,并且具有更多的便捷方法。