クラス HiddenHttpMethodFilter

実装済みのインターフェース一覧:
jakarta.servlet.Filter, Aware, BeanNameAware, DisposableBean, InitializingBean, EnvironmentAware, EnvironmentCapable, ServletContextAware

public class HiddenHttpMethodFilter extends OncePerRequestFilter
Filter は、ポストされたメソッドパラメーターを HTTP メソッドに変換し、HttpServletRequest.getMethod() で取得できるようにします。ブラウザーは現在 GET と POST のみをサポートしているため、Prototype ライブラリなどでよく使用される手法として、通常の POST に隠しフォームフィールド(_method)を追加して「実際の」HTTP メソッドを渡すというものがあります。このフィルターは、そのパラメーターを読み取り、それに応じて HttpServletRequestWrapper.getMethod() の戻り値を変更します。許可されるのは "PUT""DELETE""PATCH" HTTP メソッドのみです。

リクエストパラメーターの名前はデフォルトで _method に設定されていますが、methodParam プロパティを使用して調整できます。

注: このフィルターは、POST 本体パラメーターを確認する必要があるため、マルチパート POST リクエストの場合、マルチパート処理後に実行する必要があります。通常は、web.xml フィルターチェーンで、この HiddenHttpMethodFilter の前に Spring MultipartFilter を配置します。

導入:
3.0
作成者:
Arjen Poutsma, Juergen Hoeller
  • フィールドの詳細

    • DEFAULT_METHOD_PARAM

      public static final StringSE DEFAULT_METHOD_PARAM
      デフォルトのメソッドパラメーター: _method.
      関連事項:
  • コンストラクターの詳細

    • HiddenHttpMethodFilter

      public HiddenHttpMethodFilter()
  • メソッドの詳細

    • setMethodParam

      public void setMethodParam(StringSE methodParam)
      パラメーター名を設定して、HTTP メソッドを探します。
      関連事項:
    • doFilterInternal

      protected void doFilterInternal(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) throws jakarta.servlet.ServletException, IOExceptionSE
      クラスからコピーされた説明: OncePerRequestFilter
      doFilter と同じ契約ですが、単一のリクエストスレッド内のリクエストごとに 1 回だけ呼び出されることが保証されています。詳細については、OncePerRequestFilter.shouldNotFilterAsyncDispatch() を参照してください。

      デフォルトの ServletRequest および ServletResponse の代わりに、HttpServletRequest および HttpServletResponse 引数を提供します。

      次で指定:
      クラス OncePerRequestFilterdoFilterInternal 
      例外:
      jakarta.servlet.ServletException
      IOExceptionSE