クラス 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 StringSE
HandlerExceptionResolver
で解決されましたがビューがレンダリングされなかった例外を公開するリクエスト属性の名前 (たとえば、ステータスコードの設定)。static final StringSE
FlashMapManager
を保持するリクエスト属性の名前。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 LocaleContext
buildLocaleContext
(HttpServletRequestEE request) 指定されたリクエストの LocaleContext を構築し、リクエストのプライマリロケールを現在のロケールとして公開します。protected HttpServletRequestEE
checkMultipart
(HttpServletRequestEE request) リクエストをマルチパートリクエストに変換し、マルチパートリゾルバーを使用可能にします。protected void
cleanupMultipart
(HttpServletRequestEE request) 指定されたマルチパートリクエストで使用されているリソースをクリーンアップします(存在する場合)。protected ObjectSE
createDefaultStrategy
(ApplicationContext context, ClassSE<?> clazz) デフォルト戦略を作成します。protected void
doDispatch
(HttpServletRequestEE request, HttpServletResponseEE response) ハンドラーへの実際のディスパッチを処理します。protected void
doService
(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> T
getDefaultStrategy
(ApplicationContext context, ClassSE<T> strategyInterface) 指定された戦略インターフェースのデフォルト戦略オブジェクトを返します。protected StringSE
getDefaultViewName
(HttpServletRequestEE request) 指定されたリクエストをデフォルトのビュー名に変換します。protected HandlerExecutionChain
getHandler
(HttpServletRequestEE request) このリクエストの HandlerExecutionChain を返します。protected HandlerAdapter
getHandlerAdapter
(ObjectSE handler) このハンドラーオブジェクトの HandlerAdapter を返します。final ListSE<HandlerMapping>
WebApplicationContext
の型ごとに検出された、または DispatcherServlet.properties の戦略のデフォルトセットに基づいて初期化された、構成済みのHandlerMapping
Bean を返します。final MultipartResolver
このサーブレットの MultipartResolver がある場合は入手します。final ThemeSource
使用すべきではありません。protected void
initStrategies
(ApplicationContext context) このサーブレットが使用する戦略オブジェクトを初期化します。protected void
noHandlerFound
(HttpServletRequestEE request, HttpServletResponseEE response) ハンドラーが見つかりません → 適切な HTTP レスポンスステータスを設定します。protected void
onRefresh
(ApplicationContext context) protected ModelAndView
processHandlerException
(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, ExceptionSE ex) 登録された HandlerExceptionResolvers を介してエラー ModelAndView を判別します。protected void
render
(ModelAndView mv, HttpServletRequestEE request, HttpServletResponseEE response) 指定された ModelAndView をレンダリングします。protected View
resolveViewName
(StringSE viewName, MapSE<StringSE, ObjectSE> model, LocaleSE locale, HttpServletRequestEE request) 指定されたビュー名を(レンダリングされる)View オブジェクトに解決します。void
setCleanupAfterInclude
(boolean cleanupAfterInclude) インクルードリクエストの後にリクエスト属性のクリーンアップを実行するかどうか、つまり、DispatcherServlet がインクルードリクエスト内で処理した後にすべてのリクエスト属性の元の状態をリセットするかどうかを設定します。void
setDetectAllHandlerAdapters
(boolean detectAllHandlerAdapters) このサーブレットのコンテキストですべての HandlerAdapter Bean を検出するかどうかを設定します。void
setDetectAllHandlerExceptionResolvers
(boolean detectAllHandlerExceptionResolvers) このサーブレットのコンテキストですべての HandlerExceptionResolver Bean を検出するかどうかを設定します。void
setDetectAllHandlerMappings
(boolean detectAllHandlerMappings) このサーブレットのコンテキストですべての HandlerMapping Bean を検出するかどうかを設定します。void
setDetectAllViewResolvers
(boolean detectAllViewResolvers) このサーブレットのコンテキストですべての ViewResolver Bean を検出するかどうかを設定します。void
setThrowExceptionIfNoHandlerFound
(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 の戦略のデフォルトセットに基づいて初期化された、構成済みのHandlerMapping
Bean を返します。注意 :
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 オブジェクトの作成に問題がある場合)- 関連事項: