1

如果我在 servlet 的主体中编写自己的方法会发生什么?servlet 容器会处理它吗?如果是,如何?如果不是,为什么?

4

3 回答 3

2

不,servlet 不支持浏览器调用的自定义 Http 方法。

请阅读 servlet 2.5 规范的第 2 章了解支持的方法

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

于 2012-07-29T17:02:11.347 回答
1

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

如果你想有自定义的 http 方法。覆盖 service() 方法,使用 HttpServletRequest.getMethod() 获取方法,然后调用您的自定义方法。

例如,

 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
}

}

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

于 2012-06-26T17:36:39.193 回答
0

听起来您的意思是 JSP 页面而不是 servlet。servlet 是一个 Java 类,没有主体。servlet 具有服务方法和方法以及其他一些方法。Java 不支持在另一个方法中编写方法。

于 2012-10-11T18:55:36.177 回答