Strutsには、DELETEHTTPメソッドのデフォルトハンドラーdoDeleteがあるようです。私が実装したサーブレットは、DELETEメソッドを使用していません。ただし、curlを使用してメソッドクエリを実行すると、DELETEメソッドが表示されます。
doDeleteを実装するデフォルトサーブレットのデフォルトの動作を知りたいのですが。ありがとう。
Struts 2は、コアのRESTfulマッパーで利用可能な2つを介してRESTをサポートしますが、最初にそれらを有効にする必要があります。または、Struts2RESTプラグインを使用します。
どちらの場合も、最初にStruts2を構成してRESTサポートを有効にする必要があります。
Struts2 とそのアクションの使用法についてあまり知りません。ただし、独自のサーブレットを定義している場合は、ActionServlets を使用した Struts1 と同じ動作になります。ActionServlet は HttpServlet のサブクラスであり、メソッドをオーバーライドしませんdoDelete
。のメソッドのオープン ソース コードは次のとおりです。doDelete
HttpServlet
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);
}
}
サーブレットでのメソッドのデフォルトの実装はdoDelete
エラーを返します (これは、REST ConsoleDELETE
などのツールを使用してサンプル サーブレットにリクエストを送信することで確認できます)。