如果我在 servlet 的主体中编写自己的方法会发生什么?servlet 容器会处理它吗?如果是,如何?如果不是,为什么?
问问题
4878 次
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 中的上述方法可以使用foo
http 方法调用。
于 2012-06-26T17:36:39.193 回答
0
听起来您的意思是 JSP 页面而不是 servlet。servlet 是一个 Java 类,没有主体。servlet 具有服务方法和方法以及其他一些方法。Java 不支持在另一个方法中编写方法。
于 2012-10-11T18:55:36.177 回答