如果我在Servlet中编写自己的方法会怎样?

时间:2012-06-26 17:33:07

标签: servlets methods

如果我在servlet的主体内编写自己的方法会发生什么? servlet容器是否可以处理它?如果有,怎么样?如果不是,为什么?

3 个答案:

答案 0 :(得分:2)

不,servlet不支持浏览器调用Custom Http方法。

请阅读servlet 2.5规范关于支持的方法的第2章

http://download.oracle.com/otndocs/jcp/servlet-2.5-mrel2-eval-oth-JSpec/

答案 1 :(得分:1)

是Servlet Container支持自定义Http方法。调用any方法时,容器将调用service()方法。它是HttpServlet.service()方法,它返回除了标准Http方法之外的http方法的HttpServletResponse.SC_NOT_IMPLEMENTED状态代码,如GET,POST等。

如果您想拥有自定义http方法。重写service()方法,使用HttpServletRequest.getMethod()获取方法,并调用自定义方法。

对于Ex,

 public class CustomMethodServlet extends HttpServlet{


public void service(HttpServletRequest req, HttpServletResponse res) {\
   if(request.getMethod().equals("foo")){
   //invoke your custom method
     doFoo(request,response);
   }else {
      super.service(request, response);
   }

}
public void doFoo(HttpServletRequest req, HttpServletResponse res) {
   //implement your custom method
}

}

可以使用foo http方法调用Servlet中的上述方法。

答案 2 :(得分:0)

听起来像是一个JSP页面,而不是一个servlet。 servlet是一个Java类,没有正文。 servlet具有服务方法和方法以及其他一些方法。 Java不支持您在另一个内部编写方法。