クラス DispatcherServlet
- 実装されているすべてのインターフェース:
ServletEE、ServletConfigEE、SerializableSE、Aware、ApplicationContextAware、EnvironmentAware、EnvironmentCapable
このサーブレットは非常に柔軟です。適切なアダプタークラスをインストールすることで、ほぼすべてのワークフローで使用できます。他のリクエスト駆動型 Web MVC フレームワークと区別する次の機能を提供します。
- JavaBeans 構成メカニズムに基づいています。
- 事前構築済みまたはアプリケーションの一部として提供される
HandlerMapping実装を使用して、ハンドラーオブジェクトへのリクエストのルーティングを制御できます。デフォルトはBeanNameUrlHandlerMappingおよびRequestMappingHandlerMappingです。HandlerMapping オブジェクトは、サーブレットのアプリケーションコンテキストで Bean として定義でき、HandlerMapping インターフェースを実装し、存在する場合はデフォルトの HandlerMapping をオーバーライドします。HandlerMappings には、任意の Bean 名を付けることができます(型ごとにテストされます)。 - 任意の
HandlerAdapterを使用できます。これにより、任意のハンドラーインターフェースを使用できます。デフォルトのアダプターは、それぞれ Spring のHttpRequestHandlerおよびControllerインターフェース用のHttpRequestHandlerAdapter、SimpleControllerHandlerAdapterです。デフォルトのRequestMappingHandlerAdapterも登録されます。HandlerAdapter オブジェクトは、デフォルトの HandlerAdapters をオーバーライドして、アプリケーションコンテキストに Bean として追加できます。HandlerMappings と同様に、HandlerAdapters には任意の Bean 名を付けることができます(型ごとにテストされます)。 - ディスパッチャーの例外解決戦略は、
HandlerExceptionResolverを介して指定できます。たとえば、特定の例外をエラーページにマッピングします。デフォルトはExceptionHandlerExceptionResolver、ResponseStatusExceptionResolver、DefaultHandlerExceptionResolverです。これらの HandlerExceptionResolvers は、アプリケーションコンテキストによってオーバーライドできます。HandlerExceptionResolver には、任意の Bean 名を付けることができます(型ごとにテストされます)。 - そのビュー解決戦略は、
ViewResolver実装を介して指定でき、シンボリックビュー名をビューオブジェクトに解決します。デフォルトはInternalResourceViewResolverです。ViewResolver オブジェクトは、デフォルトの ViewResolver をオーバーライドして、アプリケーションコンテキストに Bean として追加できます。ViewResolvers には、任意の Bean 名を付けることができます(型ごとにテストされます)。 - ユーザーが
Viewまたはビュー名を指定しない場合は、構成されたRequestToViewNameTranslatorによって現在のリクエストがビュー名に変換されます。対応する Bean 名は "viewNameTranslator" で、デフォルトはDefaultRequestToViewNameTranslatorです。 - マルチパートリクエストを解決するためのディスパッチャーの戦略は、
MultipartResolver実装によって決定されます。標準のサーブレットマルチパート処理の実装が含まれています。MultipartResolver Bean の名前は "multipartResolver" で、デフォルトは none です。 - ロケール解決戦略は
LocaleResolverによって決定されます。すぐに使用できる実装は、HTTP 受け入れヘッダー、Cookie、セッションを介して機能します。LocaleResolver Bean の名前は "localeResolver" で、デフォルトはAcceptHeaderLocaleResolverです。 - テーマ解決戦略は
ThemeResolverによって決定されます。固定テーマと Cookie およびセッションストレージの実装が含まれています。ThemeResolver Bean の名前は "themeResolver" で、デフォルトはFixedThemeResolverです。テーマサポートは 6.0 以降非推奨となり、直接的な代替はありません。
注: @RequestMapping アノテーションは、対応する HandlerMapping (型レベルアノテーション用)および / または HandlerAdapter (メソッドレベルアノテーション用)がディスパッチャーに存在する場合にのみ処理されます。これはデフォルトです。ただし、カスタム HandlerMappings または HandlerAdapters を定義する場合は、@RequestMapping を使用する場合は、対応するカスタム RequestMappingHandlerMapping および / または RequestMappingHandlerAdapter も定義する必要があります。
Web アプリケーションは、任意の数の DispatcherServlets を定義できます。各サーブレットは独自の名前空間で動作し、マッピングやハンドラーなどを使用して独自のアプリケーションコンテキストをロードします。ContextLoaderListener によってロードされたルートアプリケーションコンテキストのみが共有されます。
DispatcherServlet には、内部で独自のコンテキストを作成するのではなく、Web アプリケーションコンテキストを挿入することができます。これは、サーブレットインスタンスのプログラムによる登録をサポートする Servlet 3.0+ 環境で役立ちます。詳細については、DispatcherServlet(WebApplicationContext) javadoc を参照してください。
- 作成者:
- Rod Johnson, Juergen Hoeller, Rob Harrop, Chris Beams, Rossen Stoyanchev, Sebastien Deleuze
- 関連事項:
フィールドのサマリー
フィールド修飾子と型フィールド説明static final StringSEHandlerExceptionResolverで解決されましたがビューがレンダリングされなかった例外を公開するリクエスト属性の名前 (たとえば、ステータスコードの設定)。static final StringSEFlashMapManagerを保持するリクエスト属性の名前。static final StringSEこの名前空間の Bean ファクトリ内の FlashMapManager オブジェクトの既知の名前。static final StringSEこの名前空間の Bean ファクトリ内の HandlerAdapter オブジェクトの既知の名前。static final StringSEこの名前空間の Bean ファクトリ内の HandlerExceptionResolver オブジェクトの既知の名前。static final StringSEこの名前空間の Bean ファクトリ内の HandlerMapping オブジェクトの既知の名前。static final StringSE読み取り専用のMap<String,?>を保持するリクエスト属性の名前。以前のリクエストによって保存された「入力」フラッシュ属性があれば、それが含まれます。static final StringSEビューによって取得可能な現在の LocaleResolver を保持するリクエスト属性。static final StringSEこの名前空間の Bean ファクトリ内の LocaleResolver オブジェクトの既知の名前。static final StringSEこの名前空間の Bean ファクトリ内の MultipartResolver オブジェクトの既知の名前。static final StringSE「出力」FlashMapを保持するリクエスト属性の名前。後続のリクエストのために保存する属性が含まれます。static final StringSEリクエストに対してマップされたハンドラーが見つからない場合に使用するログカテゴリ。protected static final Logリクエストに対してマップされたハンドラーが見つからない場合に使用する追加のロガー。static final StringSEこの名前空間の Bean ファクトリ内の RequestToViewNameTranslator オブジェクトの既知の名前。static final StringSE使用すべきではありません。6.0 の時点で、直接の代替はありませんstatic final StringSE使用すべきではありません。6.0 の時点で、直接の代替はありませんstatic final StringSE使用すべきではありません。6.0 の時点で、直接の代替はありませんstatic final StringSEこの名前空間の Bean ファクトリ内の ViewResolver オブジェクトの既知の名前。static final StringSE現在の Web アプリケーションコンテキストを保持するリクエスト属性。クラス org.springframework.web.servlet.FrameworkServlet から継承されたフィールド
DEFAULT_CONTEXT_CLASS, DEFAULT_NAMESPACE_SUFFIX, SERVLET_CONTEXT_PREFIXクラス org.springframework.web.servlet.HttpServletBean から継承されたフィールド
loggerクラス jakarta.servlet.http.HttpServletEE から継承されたフィールド
LEGACY_DO_HEADEEコンストラクターの概要
コンストラクターコンストラクター説明サーブレットの init-params によって提供されるデフォルトと値に基づいて独自の内部 Web アプリケーションコンテキストを作成する新しいDispatcherServletを作成します。DispatcherServlet(WebApplicationContext webApplicationContext) 指定された Web アプリケーションコンテキストで新しいDispatcherServletを作成します。メソッドのサマリー
修飾子と型メソッド説明protected LocaleContextbuildLocaleContext(HttpServletRequestEE request) 指定されたリクエストの LocaleContext を構築し、リクエストのプライマリロケールを現在のロケールとして公開します。protected HttpServletRequestEEcheckMultipart(HttpServletRequestEE request) リクエストをマルチパートリクエストに変換し、マルチパートリゾルバーを使用可能にします。protected voidcleanupMultipart(HttpServletRequestEE request) 指定されたマルチパートリクエストで使用されているリソースをクリーンアップします(存在する場合)。protected ObjectSEcreateDefaultStrategy(ApplicationContext context, ClassSE<?> clazz) デフォルト戦略を作成します。protected voiddoDispatch(HttpServletRequestEE request, HttpServletResponseEE response) ハンドラーへの実際のディスパッチを処理します。protected voiddoService(HttpServletRequestEE request, HttpServletResponseEE response) DispatcherServlet 固有のリクエスト属性を公開し、実際のディスパッチのためにdoDispatch(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)に委譲します。protected <T> ListSE<T>getDefaultStrategies(ApplicationContext context, ClassSE<T> strategyInterface) 特定の戦略インターフェースのデフォルト戦略オブジェクトのリストを作成します。protected <T> TgetDefaultStrategy(ApplicationContext context, ClassSE<T> strategyInterface) 指定された戦略インターフェースのデフォルト戦略オブジェクトを返します。protected StringSEgetDefaultViewName(HttpServletRequestEE request) 指定されたリクエストをデフォルトのビュー名に変換します。protected HandlerExecutionChaingetHandler(HttpServletRequestEE request) このリクエストの HandlerExecutionChain を返します。protected HandlerAdaptergetHandlerAdapter(ObjectSE handler) このハンドラーオブジェクトの HandlerAdapter を返します。final ListSE<HandlerMapping>WebApplicationContextの型ごとに検出された、または DispatcherServlet.properties の戦略のデフォルトセットに基づいて初期化された、構成済みのHandlerMappingBean を返します。final MultipartResolverこのサーブレットの MultipartResolver がある場合は入手します。final ThemeSource使用すべきではありません。protected voidinitStrategies(ApplicationContext context) このサーブレットが使用する戦略オブジェクトを初期化します。protected voidnoHandlerFound(HttpServletRequestEE request, HttpServletResponseEE response) ハンドラーが見つかりません → 適切な HTTP レスポンスステータスを設定します。protected voidonRefresh(ApplicationContext context) protected ModelAndViewprocessHandlerException(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, ExceptionSE ex) 登録された HandlerExceptionResolvers を介してエラー ModelAndView を判別します。protected voidrender(ModelAndView mv, HttpServletRequestEE request, HttpServletResponseEE response) 指定された ModelAndView をレンダリングします。protected ViewresolveViewName(StringSE viewName, MapSE<StringSE, ObjectSE> model, LocaleSE locale, HttpServletRequestEE request) 指定されたビュー名を(レンダリングされる)View オブジェクトに解決します。voidsetCleanupAfterInclude(boolean cleanupAfterInclude) インクルードリクエストの後にリクエスト属性のクリーンアップを実行するかどうか、つまり、DispatcherServlet がインクルードリクエスト内で処理した後にすべてのリクエスト属性の元の状態をリセットするかどうかを設定します。voidsetDetectAllHandlerAdapters(boolean detectAllHandlerAdapters) このサーブレットのコンテキストですべての HandlerAdapter Bean を検出するかどうかを設定します。voidsetDetectAllHandlerExceptionResolvers(boolean detectAllHandlerExceptionResolvers) このサーブレットのコンテキストですべての HandlerExceptionResolver Bean を検出するかどうかを設定します。voidsetDetectAllHandlerMappings(boolean detectAllHandlerMappings) このサーブレットのコンテキストですべての HandlerMapping Bean を検出するかどうかを設定します。voidsetDetectAllViewResolvers(boolean detectAllViewResolvers) このサーブレットのコンテキストですべての ViewResolver Bean を検出するかどうかを設定します。voidsetThrowExceptionIfNoHandlerFound(boolean throwExceptionIfNoHandlerFound) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。6.1 では、このプロパティはデフォルトでtrueに設定されており、カスタマイズする必要はありません。実際には、DispatcherServletは常にNoHandlerFoundExceptionを生成し、HandlerExceptionResolverを通じて処理できるようにする必要があります。クラス org.springframework.web.servlet.FrameworkServlet から継承されたメソッド
applyInitializers, buildRequestAttributes, configureAndRefreshWebApplicationContext, createWebApplicationContext, createWebApplicationContext, destroy, doDelete, doGet, doOptions, doPost, doPut, doTrace, findWebApplicationContext, getContextAttribute, getContextClass, getContextConfigLocation, getContextId, getNamespace, getServletContextAttributeName, getUsernameForRequest, getWebApplicationContext, initFrameworkServlet, initServletBean, initWebApplicationContext, isEnableLoggingRequestDetails, onApplicationEvent, postProcessWebApplicationContext, processRequest, refresh, service, setApplicationContext, setContextAttribute, setContextClass, setContextConfigLocation, setContextId, setContextInitializerClasses, setContextInitializers, setDispatchOptionsRequest, setDispatchTraceRequest, setEnableLoggingRequestDetails, setNamespace, setPublishContext, setPublishEvents, setThreadContextInheritableクラス org.springframework.web.servlet.HttpServletBean から継承されたメソッド
addRequiredProperty, createEnvironment, getEnvironment, getServletName, init, initBeanWrapper, setEnvironmentクラス jakarta.servlet.http.HttpServletEE から継承されたメソッド
doHeadEE, getLastModifiedEE, initEE, serviceEEクラス jakarta.servlet.GenericServletEE から継承されたメソッド
getInitParameterEE, getInitParameterNamesEE, getServletConfigEE, getServletContextEE, getServletInfoEE, logEE, logEE
フィールドの詳細
MULTIPART_RESOLVER_BEAN_NAME
この名前空間の Bean ファクトリ内の MultipartResolver オブジェクトの既知の名前。- 関連事項:
LOCALE_RESOLVER_BEAN_NAME
この名前空間の Bean ファクトリ内の LocaleResolver オブジェクトの既知の名前。- 関連事項:
THEME_RESOLVER_BEAN_NAME
使用すべきではありません。6.0 の時点で、直接の代替はありませんこの名前空間の Bean ファクトリ内の ThemeResolver オブジェクトの既知の名前。- 関連事項:
HANDLER_MAPPING_BEAN_NAME
この名前空間の Bean ファクトリ内の HandlerMapping オブジェクトのよく知られた名前。"detectAllHandlerMappings" がオフの場合にのみ使用されます。HANDLER_ADAPTER_BEAN_NAME
この名前空間の Bean ファクトリ内の HandlerAdapter オブジェクトのよく知られた名前。"detectAllHandlerAdapters" がオフの場合にのみ使用されます。HANDLER_EXCEPTION_RESOLVER_BEAN_NAME
この名前空間の Bean ファクトリ内の HandlerExceptionResolver オブジェクトのよく知られた名前。"detectAllHandlerExceptionResolvers" がオフの場合にのみ使用されます。REQUEST_TO_VIEW_NAME_TRANSLATOR_BEAN_NAME
この名前空間の Bean ファクトリ内の RequestToViewNameTranslator オブジェクトの既知の名前。- 関連事項:
VIEW_RESOLVER_BEAN_NAME
この名前空間の Bean ファクトリ内の ViewResolver オブジェクトのよく知られた名前。"detectAllViewResolvers" がオフの場合にのみ使用されます。FLASH_MAP_MANAGER_BEAN_NAME
この名前空間の Bean ファクトリ内の FlashMapManager オブジェクトの既知の名前。- 関連事項:
WEB_APPLICATION_CONTEXT_ATTRIBUTE
現在の Web アプリケーションコンテキストを保持するリクエスト属性。それ以外の場合、グローバル Web アプリコンテキストのみがタグなどによって取得できます。LOCALE_RESOLVER_ATTRIBUTE
ビューによって取得可能な現在の LocaleResolver を保持するリクエスト属性。THEME_RESOLVER_ATTRIBUTE
使用すべきではありません。6.0 の時点で、直接の代替はありませんビューによって取得可能な現在の ThemeResolver を保持するリクエスト属性。THEME_SOURCE_ATTRIBUTE
使用すべきではありません。6.0 の時点で、直接の代替はありませんビューによって取得可能な現在の ThemeSource を保持するリクエスト属性。INPUT_FLASH_MAP_ATTRIBUTE
読み取り専用のMap<String,?>を保持するリクエスト属性の名前。以前のリクエストによって保存された「入力」フラッシュ属性があれば、それが含まれます。OUTPUT_FLASH_MAP_ATTRIBUTE
「出力」FlashMapを保持するリクエスト属性の名前。後続のリクエストのために保存する属性が含まれます。FLASH_MAP_MANAGER_ATTRIBUTE
FlashMapManagerを保持するリクエスト属性の名前。EXCEPTION_ATTRIBUTE
HandlerExceptionResolverで解決されましたがビューがレンダリングされなかった例外を公開するリクエスト属性の名前 (たとえば、ステータスコードの設定)。PAGE_NOT_FOUND_LOG_CATEGORY
リクエストに対してマップされたハンドラーが見つからない場合に使用するログカテゴリ。- 関連事項:
pageNotFoundLogger
リクエストに対してマップされたハンドラーが見つからない場合に使用する追加のロガー。
コンストラクターの詳細
DispatcherServlet
public DispatcherServlet()サーブレットの init-params によって提供されるデフォルトと値に基づいて独自の内部 Web アプリケーションコンテキストを作成する新しいDispatcherServletを作成します。通常、Servlet 2.5 以前の環境で使用されます。サーブレット登録の唯一のオプションは、引数なしのコンストラクターの使用を必要とするweb.xmlによるものです。FrameworkServlet.setContextConfigLocation(java.lang.String)(init-param 'contextConfigLocation') を呼び出すと、デフォルトの XmlWebApplicationContext によってロードされる XML ファイルが指定されます。FrameworkServlet.setContextClass(java.lang.Class<?>)(init-param 'contextClass' ) を呼び出すと、デフォルトのXmlWebApplicationContextがオーバーライドされ、AnnotationConfigWebApplicationContextなどの代替クラスを指定できるようになります。FrameworkServlet.setContextInitializerClasses(java.lang.String)(init-param 'contextInitializerClasses' ) を呼び出すと、refresh() の前に内部アプリケーションコンテキストをさらに構成するためにどのApplicationContextInitializerクラスを使用する必要があるかが示されます。DispatcherServlet
指定された Web アプリケーションコンテキストで新しいDispatcherServletを作成します。このコンストラクターは、ServletContext.addServlet(java.lang.String, java.lang.String)EE API を介してサーブレットのインスタンスベースの登録が可能なサーブレット環境で役立ちます。このコンストラクターを使用すると、次のプロパティ / init-params が無視されます:
FrameworkServlet.setContextClass(Class)/'contextClass'FrameworkServlet.setContextConfigLocation(String)/'contextConfigLocation'FrameworkServlet.setContextAttribute(String)/'contextAttribute'FrameworkServlet.setNamespace(String)/' 名前空間 '
指定された Web アプリケーションコンテキストは、まだリフレッシュされていない場合があります。まだリフレッシュされていない場合(推奨されるアプローチ)、次のようになります。
- 指定されたコンテキストにまだ parent がない場合、ルートアプリケーションコンテキストが親として設定されます。
- 指定されたコンテキストにまだ id が割り当てられていない場合、1 つが割り当てられます
ServletContextおよびServletConfigオブジェクトは、アプリケーションコンテキストに委譲されます。FrameworkServlet.postProcessWebApplicationContext(org.springframework.web.context.ConfigurableWebApplicationContext)が呼び出されます- "contextInitializerClasses" 初期化パラメーターまたは
FrameworkServlet.setContextInitializers(org.springframework.context.ApplicationContextInitializer<?>...)プロパティを通じて指定されたApplicationContextInitializerが適用されます。 - コンテキストが
ConfigurableApplicationContextを実装する場合、refresh()が呼び出されます
使用例については、
WebApplicationInitializerを参照してください。
メソッドの詳細
setDetectAllHandlerMappings
public void setDetectAllHandlerMappings(boolean detectAllHandlerMappings) このサーブレットのコンテキスト内のすべての HandlerMapping Bean を検出するかどうかを設定します。それ以外の場合は、"handlerMapping" という名前の単一の Bean のみが想定されます。デフォルトは "true" です。コンテキストで複数の HandlerMapping Bean が定義されているにもかかわらず、このサーブレットで単一の HandlerMapping を使用する場合は、これをオフにします。
setDetectAllHandlerAdapters
public void setDetectAllHandlerAdapters(boolean detectAllHandlerAdapters) このサーブレットのコンテキスト内のすべての HandlerAdapter Bean を検出するかどうかを設定します。それ以外の場合は、"handlerAdapter" という名前の単一の Bean のみが想定されます。デフォルトは "true" です。コンテキストで複数の HandlerAdapter Bean が定義されているにもかかわらず、このサーブレットで単一の HandlerAdapter を使用する場合は、これをオフにします。
setDetectAllHandlerExceptionResolvers
public void setDetectAllHandlerExceptionResolvers(boolean detectAllHandlerExceptionResolvers) このサーブレットのコンテキスト内のすべての HandlerExceptionResolver Bean を検出するかどうかを設定します。それ以外の場合は、"handlerExceptionResolver" という名前の単一の Bean のみが想定されます。デフォルトは "true" です。コンテキストで複数の HandlerExceptionResolver Bean が定義されているにもかかわらず、このサーブレットで単一の HandlerExceptionResolver を使用する場合は、これをオフにします。
setDetectAllViewResolvers
public void setDetectAllViewResolvers(boolean detectAllViewResolvers) このサーブレットのコンテキスト内のすべての ViewResolver Bean を検出するかどうかを設定します。それ以外の場合は、"viewResolver" という名前の単一の Bean のみが想定されます。デフォルトは "true" です。コンテキストで複数の ViewResolver Bean が定義されているにもかかわらず、このサーブレットで単一の ViewResolver を使用する場合は、これをオフにします。
setThrowExceptionIfNoHandlerFound
@DeprecatedSE(since="6.1", forRemoval=true) public void setThrowExceptionIfNoHandlerFound(boolean throwExceptionIfNoHandlerFound) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。6.1 では、このプロパティはデフォルトでtrueに設定されており、カスタマイズする必要はありません。実際には、DispatcherServletは常にNoHandlerFoundExceptionを生成し、HandlerExceptionResolverを通じて処理できるようにする必要があります。このリクエストのハンドラーが見つからなかった場合、NoHandlerFoundException をスローするかどうかを設定します。この例外は、HandlerExceptionResolver または@ExceptionHandlerコントローラーメソッドでキャッチできます。DefaultServletHttpRequestHandlerが使用される場合、リクエストは常にデフォルトのサーブレットに転送され、その場合 NoHandlerFoundException は決してスローされないことに注意してください。デフォルトは "false" です。これは、DispatcherServlet がサーブレットレスポンスを介して NOT_FOUND エラーを送信することを意味します。
- 導入:
- 4.0
setCleanupAfterInclude
public void setCleanupAfterInclude(boolean cleanupAfterInclude) インクルードリクエストの後にリクエスト属性のクリーンアップを実行するかどうか、つまり、DispatcherServlet がインクルードリクエスト内で処理した後にすべてのリクエスト属性の元の状態をリセットするかどうかを設定します。そうでない場合は、DispatcherServlet 自身のリクエスト属性のみがリセットされますが、JSP のモデル属性やビューによって設定される特別な属性(JSTL など)はリセットされません。デフォルトは "true" です。これを強くお勧めします。ビューは、(動的)インクルードによって設定されたリクエスト属性に依存すべきではありません。これにより、含まれているコントローラーによってレンダリングされた JSP ビューは、副作用を引き起こすことなく、メイン JSP と同じ名前であっても、任意のモデル属性を使用できます。特別な必要がある場合のみ、これをオフにします。たとえば、メインの JSP が意図的に含まれているコントローラーによってレンダリングされた JSP ビューの属性にアクセスできるようにする場合です。
onRefresh
- オーバーライド:
- クラス
FrameworkServletのonRefresh - パラメーター:
context- 現在の WebApplicationContext- 関連事項:
initStrategies
このサーブレットが使用する戦略オブジェクトを初期化します。さらに戦略オブジェクトを初期化するために、サブクラスでオーバーライドされる場合があります。
getThemeSource
使用すべきではありません。このサーブレットの ThemeSource があれば、それを返します。そうでない場合はnullを返します。ThemeSource インターフェースを実装している場合、デフォルトでは WebApplicationContext を ThemeSource として返します。
- 戻り値:
- ThemeSource(ある場合)
- 関連事項:
getMultipartResolver
このサーブレットの MultipartResolver がある場合は入手します。- 戻り値:
- このサーブレットが使用する MultipartResolver。ない場合は
null(マルチパートサポートが利用できないことを示す)
getHandlerMappings
WebApplicationContextの型ごとに検出された、または DispatcherServlet.properties の戦略のデフォルトセットに基づいて初期化された、構成済みのHandlerMappingBean を返します。注意 :
onRefresh(ApplicationContext)の前に呼び出された場合、このメソッドはnullを返すことがあります。- 戻り値:
- 設定されたマッピングを持つ不変リスト、またはまだ初期化されていない場合は
null - 導入:
- 5.0
getDefaultStrategy
指定された戦略インターフェースのデフォルト戦略オブジェクトを返します。デフォルトの実装は
getDefaultStrategies(org.springframework.context.ApplicationContext, java.lang.Class<T>)に委譲し、リスト内の単一のオブジェクトを期待します。- パラメーター:
context- 現在の WebApplicationContextstrategyInterface- 戦略インターフェース- 戻り値:
- 対応する戦略オブジェクト
- 関連事項:
getDefaultStrategies
protected <T> ListSE<T> getDefaultStrategies(ApplicationContext context, ClassSE<T> strategyInterface) 特定の戦略インターフェースのデフォルト戦略オブジェクトのリストを作成します。デフォルトの実装では、"DispatcherServlet.properties" ファイル(DispatcherServlet クラスと同じパッケージ内)を使用して、クラス名を決定します。コンテキストの BeanFactory を通じて戦略オブジェクトをインスタンス化します。
- パラメーター:
context- 現在の WebApplicationContextstrategyInterface- 戦略インターフェース- 戻り値:
- 対応する戦略オブジェクトのリスト
createDefaultStrategy
デフォルト戦略を作成します。デフォルトの実装では
AutowireCapableBeanFactory.createBean(Class)を使用します。- パラメーター:
context- 現在の WebApplicationContextclazz- インスタンス化する戦略実装クラス- 戻り値:
- 完全に構成された戦略インスタンス
- 関連事項:
doService
protected void doService(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE DispatcherServlet 固有のリクエスト属性を公開し、実際のディスパッチのためにdoDispatch(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)に委譲します。- 次で指定:
- クラス
FrameworkServletのdoService - パラメーター:
request- 現在の HTTP リクエストresponse- 現在の HTTP レスポンス- 例外:
ExceptionSE- あらゆる種類の処理が失敗した場合- 関連事項:
doDispatch
protected void doDispatch(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE ハンドラーへの実際のディスパッチを処理します。ハンドラーは、サーブレットの HandlerMappings を順番に適用することにより取得されます。HandlerAdapter は、サーブレットにインストールされている HandlerAdapters を照会して、ハンドラークラスをサポートする最初の HandlerAdapter を見つけることによって取得されます。
すべての HTTP メソッドは、このメソッドによって処理されます。許容されるメソッドを決定するのは、HandlerAdapters またはハンドラー自身です。
- パラメーター:
request- 現在の HTTP リクエストresponse- 現在の HTTP レスポンス- 例外:
ExceptionSE- あらゆる種類の処理が失敗した場合
buildLocaleContext
指定されたリクエストの LocaleContext を構築し、リクエストのプライマリロケールを現在のロケールとして公開します。デフォルトの実装では、ディスパッチャーの LocaleResolver を使用して現在のロケールを取得しますが、これはリクエスト中に変更される可能性があります。
- オーバーライド:
- クラス
FrameworkServletのbuildLocaleContext - パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- 対応する LocaleContext
- 関連事項:
checkMultipart
protected HttpServletRequestEE checkMultipart(HttpServletRequestEE request) throws MultipartException リクエストをマルチパートリクエストに変換し、マルチパートリゾルバーを使用可能にします。マルチパートリゾルバーが設定されていない場合は、既存のリクエストを使用します。
- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- 処理されたリクエスト (必要に応じてマルチパートラッパー)
- 例外:
MultipartException- 関連事項:
cleanupMultipart
指定されたマルチパートリクエストで使用されているリソースをクリーンアップします(存在する場合)。- パラメーター:
request- 現在の HTTP リクエスト- 関連事項:
getHandler
@Nullable protected HandlerExecutionChain getHandler(HttpServletRequestEE request) throws ExceptionSE このリクエストの HandlerExecutionChain を返します。すべてのハンドラーマッピングを順番に試行します。
- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- HandlerExecutionChain、またはハンドラーが見つからなかった場合は
null - 例外:
ExceptionSE
noHandlerFound
protected void noHandlerFound(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE ハンドラーが見つかりません → 適切な HTTP レスポンスステータスを設定します。- パラメーター:
request- 現在の HTTP リクエストresponse- 現在の HTTP レスポンス- 例外:
ExceptionSE- レスポンスの準備に失敗した場合
getHandlerAdapter
このハンドラーオブジェクトの HandlerAdapter を返します。- パラメーター:
handler- アダプターを見つけるためのハンドラーオブジェクト- 例外:
ServletExceptionEE- ハンドラーの HandlerAdapter が見つからない場合。これは致命的なエラーです。
processHandlerException
@Nullable protected ModelAndView processHandlerException(HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler, ExceptionSE ex) throws ExceptionSE 登録された HandlerExceptionResolvers を介してエラー ModelAndView を判別します。- パラメーター:
request- 現在の HTTP リクエストresponse- 現在の HTTP レスポンスhandler- 実行されたハンドラー、または例外時に何も選択されなかった場合はnull(たとえば、マルチパート解決が失敗した場合)ex- ハンドラーの実行中にスローされた例外- 戻り値:
- 転送する対応する ModelAndView
- 例外:
ExceptionSE- エラー ModelAndView が見つからなかった場合
render
protected void render(ModelAndView mv, HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE 指定された ModelAndView をレンダリングします。これは、リクエストを処理する最後の段階です。ビューを名前で解決する必要がある場合があります。
- パラメーター:
mv- レンダリングする ModelAndViewrequest- 現在の HTTP サーブレットリクエストresponse- 現在の HTTP サーブレットレスポンス- 例外:
ServletExceptionEE- ビューが欠落しているか、解決できない場合ExceptionSE- ビューのレンダリングに問題がある場合
getDefaultViewName
指定されたリクエストをデフォルトのビュー名に変換します。- パラメーター:
request- 現在の HTTP サーブレットリクエスト- 戻り値:
- ビュー名 (または、デフォルトが見つからない場合は
null) - 例外:
ExceptionSE- ビュー名の変換に失敗した場合
resolveViewName
@Nullable protected View resolveViewName(StringSE viewName, @Nullable MapSE<StringSE, ObjectSE> model, LocaleSE locale, HttpServletRequestEE request) throws ExceptionSE指定されたビュー名を(レンダリングされる)View オブジェクトに解決します。デフォルトの実装は、このディスパッチャーのすべての ViewResolvers をリクエストします。潜在的に特定のモデル属性またはリクエストパラメーターに基づいて、カスタム解決戦略のためにオーバーライドできます。
- パラメーター:
viewName- 解決するビューの名前model- ビューに渡されるモデルlocale- 現在のロケールrequest- 現在の HTTP サーブレットリクエスト- 戻り値:
- View オブジェクト、または何も見つからない場合は
null - 例外:
ExceptionSE- ビューを解決できない場合 (通常、実際の View オブジェクトの作成に問題がある場合)- 関連事項: