DELETE的默认struts处理程序是做什么的

时间:2013-01-29 04:24:58

标签: java struts2 struts struts-1

Struts似乎有一个DELETE HTTP方法的默认处理程序doDelete。我实现的servlet不使用任何DELETE方法。但是,当我使用curl执行方法查询时,DELETE方法会显示。

我想知道实现doDelete的默认servlet的默认行为。感谢。

2 个答案:

答案 0 :(得分:1)

对Struts2及其对Actions的使用不太了解。但是,如果要定义自己的servlet,则与Struts1和ActionServlet具有相同的行为。来自HttpServlet的ActionServlet子类,不会覆盖doDelete方法。以下是doDeleteHttpServlet方法的open source code

protected void doDelete(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException
{
    String protocol = req.getProtocol();
    String msg = lStrings.getString("http.method_delete_not_supported");
    if (protocol.endsWith("1.1")) {
        resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
    } else {
        resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
    }
}

servlet上的doDelete方法的默认实现会返回一个错误(您可以通过DELETEREST Console工具发送{{1}}请求来验证错误。< / p>

答案 1 :(得分:1)

Struts 2通过核心restful mappers中的两个提供支持REST,但您必须先启用它们。 或者使用Struts 2 REST plugin

在这两种情况下,您必须首先配置Struts 2以启用REST支持。