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更加易于使用,并且具有更多的便捷方法。