クラス MultipartFilter

実装されたすべてのインターフェース:
FilterEEAwareBeanNameAwareDisposableBeanInitializingBeanEnvironmentAwareEnvironmentCapableServletContextAware

public class MultipartFilter extends OncePerRequestFilter
MultipartResolver を介してマルチパートリクエストを解決するサーブレットフィルター。ルート Web アプリケーションコンテキスト内。

Spring のルート Web アプリケーションコンテキストで MultipartResolver を検索します。web.xml の "multipartResolverBeanName" フィルター init-param をサポートします。デフォルトの Bean 名は "filterMultipartResolver" です。

MultipartResolver Bean が見つからない場合、このフィルターはデフォルトの MultipartResolver にフォールバックします: web.xml の multipart-config セクションに基づいて、Servlet oontainers の 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
関連事項:
  • フィールドの詳細

    • DEFAULT_MULTIPART_RESOLVER_BEAN_NAME

      public static final StringSE DEFAULT_MULTIPART_RESOLVER_BEAN_NAME
      マルチパートリゾルバー Bean のデフォルト名。
      関連事項:
  • コンストラクターの詳細

    • MultipartFilter

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

    • setMultipartResolverBeanName

      public void setMultipartResolverBeanName(StringSE multipartResolverBeanName)
      MultipartResolver の Bean 名を設定して、Spring のルートアプリケーションコンテキストから取得します。デフォルトは "filterMultipartResolver" です。
    • getMultipartResolverBeanName

      protected StringSE getMultipartResolverBeanName()
      Spring のルートアプリケーションコンテキストから取得する MultipartResolver の Bean 名を返します。
    • doFilterInternal

      protected void doFilterInternal(HttpServletRequestEE request, HttpServletResponseEE response, FilterChainEE filterChain) throws ServletExceptionEE, IOExceptionSE
      このフィルターの MultipartResolver を介してマルチパートリクエストを確認し、必要に応じて元のリクエストを MultipartHttpServletRequest でラップします。

      フィルターチェーンのそれ以降のすべての要素(最も重要なのはサーブレット)は、マルチパートの場合に適切なパラメーター抽出の恩恵を受け、必要に応じて MultipartHttpServletRequest にキャストできます。

      次で指定:
      クラス OncePerRequestFilterdoFilterInternal 
      例外:
      ServletExceptionEE
      IOExceptionSE
    • lookupMultipartResolver

      protected MultipartResolver lookupMultipartResolver(HttpServletRequestEE request)
      現在の HTTP リクエストを引数として、このフィルターが使用する MultipartResolver を検索します。

      デフォルトの実装は、引数なしで lookupMultipartResolver に委譲します。

      戻り値:
      使用する MultipartResolver
      関連事項:
    • lookupMultipartResolver

      protected MultipartResolver lookupMultipartResolver()
      ルート Web アプリケーションコンテキストで MultipartResolver Bean を探します。"multipartResolverBeanName" フィルターの初期化パラメーターをサポート。デフォルトの Bean 名は "filterMultipartResolver" です。

      これは、たとえば Spring Web アプリケーションコンテキストを使用しない場合など、カスタム MultipartResolver インスタンスを使用するためにオーバーライドできます。

      戻り値:
      MultipartResolver インスタンス