クラス MultipartFilter
- 実装されたすべてのインターフェース:
FilterEE
、Aware
、BeanNameAware
、DisposableBean
、InitializingBean
、EnvironmentAware
、EnvironmentCapable
、ServletContextAware
MultipartResolver
を介してマルチパートリクエストを解決するサーブレットフィルター。ルート Web アプリケーションコンテキスト内。Spring のルート Web アプリケーションコンテキストで MultipartResolver を検索します。web.xml
で "multipartResolverBeanName" フィルター init-param をサポートします。デフォルトの Bean 名は "filterMultipartResolver" です。
MultipartResolver Bean が見つからない場合、このフィルターは、web.xml
の multipart-config セクションに基づいて、サーブレットコンテナーのデフォルトの MultipartResolver: StandardServletMultipartResolver
にフォールバックします。ただし、現時点では、サーブレット仕様では、サーブレットでマルチパート構成を有効にする方法のみが定義されているため、サーブレットコンテナーが Tomcat の "allowCasualMultipartParsing" プロパティなどの回避策を提供しない限り、フィルターでマルチパートリクエストを処理することはおそらく不可能です。
MultipartResolver ルックアップはカスタマイズ可能: たとえば、Spring Web アプリケーションコンテキストを使用していない場合、カスタム MultipartResolver インスタンスを使用するには、このフィルターの lookupMultipartResolver
メソッドをオーバーライドします。ルックアップメソッドは、呼び出しごとに新しい MultipartResolver インスタンスを作成するのではなく、ビルド済みインスタンスへの参照を返すことに注意してください。
メモ: このフィルターは、DispatcherServlet の MultipartResolver サポートを使用する代わりに使用できます。たとえば、Spring の Web MVC を使用しないカスタム Web ビューを持つ Web アプリケーション、または Spring MVC DispatcherServlet (例: HiddenHttpMethodFilter
) の前に適用されるカスタムフィルター用です。いずれにしても、このフィルターはサーブレット固有のマルチパート解決と組み合わせてはいけません。
- 導入:
- 08.10.2003
- 作成者:
- Juergen Hoeller
- 関連事項:
フィールドサマリー
クラス org.springframework.web.filter.OncePerRequestFilter から継承されたフィールド
ALREADY_FILTERED_SUFFIX
クラス org.springframework.web.filter.GenericFilterBean から継承されたフィールド
logger
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明protected void
doFilterInternal
(HttpServletRequestEE request, HttpServletResponseEE response, FilterChainEE filterChain) このフィルターの MultipartResolver を介してマルチパートリクエストを確認し、必要に応じて元のリクエストを MultipartHttpServletRequest でラップします。protected StringSE
Spring のルートアプリケーションコンテキストから取得する MultipartResolver の Bean 名を返します。protected MultipartResolver
ルート Web アプリケーションコンテキストで MultipartResolver Bean を探します。protected MultipartResolver
現在の HTTP リクエストを引数として、このフィルターが使用する MultipartResolver を検索します。void
setMultipartResolverBeanName
(StringSE multipartResolverBeanName) MultipartResolver の Bean 名を設定して、Spring のルートアプリケーションコンテキストから取得します。クラス org.springframework.web.filter.OncePerRequestFilter から継承されたメソッド
doFilter, doFilterNestedErrorDispatch, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter, shouldNotFilterAsyncDispatch, shouldNotFilterErrorDispatch
クラス org.springframework.web.filter.GenericFilterBean から継承されたメソッド
addRequiredProperty, afterPropertiesSet, createEnvironment, destroy, getEnvironment, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContext
フィールドの詳細
DEFAULT_MULTIPART_RESOLVER_BEAN_NAME
マルチパートリゾルバー Bean のデフォルト名。- 関連事項:
コンストラクターの詳細
MultipartFilter
public MultipartFilter()
メソッドの詳細
setMultipartResolverBeanName
Spring のルートアプリケーションコンテキストから取得する MultipartResolver の Bean 名を設定します。デフォルトは "filterMultipartResolver" です。getMultipartResolverBeanName
Spring のルートアプリケーションコンテキストから取得する MultipartResolver の Bean 名を返します。doFilterInternal
protected void doFilterInternal(HttpServletRequestEE request, HttpServletResponseEE response, FilterChainEE filterChain) throws ServletExceptionEE, IOExceptionSE このフィルターの MultipartResolver を介してマルチパートリクエストを確認し、必要に応じて元のリクエストを MultipartHttpServletRequest でラップします。フィルターチェーンのそれ以降のすべての要素(最も重要なのはサーブレット)は、マルチパートの場合に適切なパラメーター抽出の恩恵を受け、必要に応じて MultipartHttpServletRequest にキャストできます。
- 次で指定:
- クラス
OncePerRequestFilter
のdoFilterInternal
- 例外:
ServletExceptionEE
IOExceptionSE
lookupMultipartResolver
現在の HTTP リクエストを引数として、このフィルターが使用する MultipartResolver を検索します。デフォルトの実装は、引数なしで
lookupMultipartResolver
に委譲します。- 戻り値:
- 使用する MultipartResolver
- 関連事項:
lookupMultipartResolver
ルート Web アプリケーションコンテキストで MultipartResolver Bean を検索します。"multipartResolverBeanName" フィルター初期化パラメーターをサポートします。デフォルトの Bean 名は "filterMultipartResolver" です。これは、たとえば Spring Web アプリケーションコンテキストを使用しない場合など、カスタム MultipartResolver インスタンスを使用するためにオーバーライドできます。
- 戻り値:
- MultipartResolver インスタンス