クラス HiddenHttpMethodFilter
java.lang.ObjectSE
org.springframework.web.filter.GenericFilterBean
org.springframework.web.filter.OncePerRequestFilter
org.springframework.web.filter.HiddenHttpMethodFilter
- 実装済みのインターフェース一覧:
jakarta.servlet.Filter, Aware, BeanNameAware, DisposableBean, InitializingBean, EnvironmentAware, EnvironmentCapable, ServletContextAware
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
フィールド概要
フィールドクラス OncePerRequestFilter から継承されたフィールド
ALREADY_FILTERED_SUFFIXクラス GenericFilterBean から継承されたフィールド
loggerコンストラクター概要
コンストラクター方法の概要
修飾子と型メソッド説明protected voiddoFilterInternal(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) doFilterと同じ契約ですが、単一のリクエストスレッド内のリクエストごとに 1 回だけ呼び出されることが保証されています。voidsetMethodParam(StringSE methodParam) パラメーター名を設定して、HTTP メソッドを探します。クラス OncePerRequestFilter から継承されたメソッド
doFilter, doFilterNestedErrorDispatch, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter, shouldNotFilterAsyncDispatch, shouldNotFilterErrorDispatch
フィールドの詳細
DEFAULT_METHOD_PARAM
コンストラクターの詳細
HiddenHttpMethodFilter
public HiddenHttpMethodFilter()
メソッドの詳細
setMethodParam
doFilterInternal
protected void doFilterInternal(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) throws jakarta.servlet.ServletException, IOExceptionSE クラスからコピーされた説明:OncePerRequestFilterdoFilterと同じ契約ですが、単一のリクエストスレッド内のリクエストごとに 1 回だけ呼び出されることが保証されています。詳細については、OncePerRequestFilter.shouldNotFilterAsyncDispatch()を参照してください。デフォルトの ServletRequest および ServletResponse の代わりに、HttpServletRequest および HttpServletResponse 引数を提供します。
- 次で指定:
- クラス
OncePerRequestFilterのdoFilterInternal - 例外:
jakarta.servlet.ServletExceptionIOExceptionSE