在NetBeans 6.7.1中,我创建了一个j2ee项目,
在这个项目中,我有一个扩展HttpServlet的Servlet,
无论我对servlet知之甚少,他们应该有一个服务方法,但是在NetBeans的类中我只找到以下方法。
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {}
public String getServletInfo() {}
doGet和doPost调用processRequest方法。 服务方法在哪里?
答案 0 :(得分:2)
servlet不需要(重新)实现javax.servlet.Servlet或javax.servlet.http.HttpServlet类的service()方法。从API文档中反思,service()方法用于将请求分派给servlet的doXXX()方法。它已经在HttpServlet类中实现,用于HTTP协议,因此不需要在依赖HTTP协议的另一个servlet中覆盖它。
顺便说一下,在创建servlet时,为方便起见,NetBeans会自动创建doGet(),doPost(),getServletInfo()和processRequest()方法。这并不意味着service()方法不可用 - 大多数servlet程序员不必实现service()方法。