如果我在servlet的主体内编写自己的方法会发生什么? servlet容器是否可以处理它?如果有,怎么样?如果不是,为什么?
答案 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不支持您在另一个内部编写方法。