public class DispatcherServlet extends FrameworkServlet
このサーブレットは非常に柔軟です。適切なアダプタークラスをインストールすることで、ほぼすべてのワークフローで使用できます。他のリクエスト駆動型 Web MVC フレームワークと区別する次の機能を提供します。
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
実装によって決定されます。Apache Commons、FileUpload、Servlet 3 の実装が含まれます。一般的な選択肢は CommonsMultipartResolver
です。MultipartResolver Bean の名前は "multipartResolver" で、デフォルトはなしです。LocaleResolver
によって決定されます。すぐに使用できる実装は、HTTP 受け入れヘッダー、Cookie、セッションを介して機能します。LocaleResolver Bean の名前は "localeResolver" で、デフォルトは AcceptHeaderLocaleResolver
です。ThemeResolver
によって決定されます。固定テーマと Cookie およびセッションストレージの実装が含まれています。ThemeResolver Bean の名前は "themeResolver" で、デフォルトは FixedThemeResolver
です。 注: @RequestMapping
アノテーションは、対応する HandlerMapping
(型レベルアノテーション用)および / または HandlerAdapter
(メソッドレベルアノテーション用)がディスパッチャーに存在する場合にのみ処理されます。これはデフォルトです。ただし、カスタム HandlerMappings
または HandlerAdapters
を定義する場合は、@RequestMapping
を使用する場合は、対応するカスタム RequestMappingHandlerMapping
および / または RequestMappingHandlerAdapter
も定義する必要があります。
Web アプリケーションは、任意の数の DispatcherServlets を定義できます。各サーブレットは独自の名前空間で動作し、マッピングやハンドラーなどを使用して独自のアプリケーションコンテキストをロードします。ContextLoaderListener
によってロードされたルートアプリケーションコンテキストのみが共有されます。
Spring 3.1 の時点で、DispatcherServlet
は独自に作成するのではなく、Web アプリケーションコンテキストを注入できるようになりました。これは、サーブレットインスタンスのプログラムによる登録をサポートする Servlet 3.0+ 環境で役立ちます。詳細については、DispatcherServlet(WebApplicationContext)
javadoc を参照してください。
HttpRequestHandler
, Controller
, ContextLoaderListener
, 直列化された形式 修飾子と型 | フィールドと説明 |
---|---|
static StringSE | EXCEPTION_ATTRIBUTE HandlerExceptionResolver で解決されたが、ビューがレンダリングされなかった例外を公開するリクエスト属性の名前(例: |
static StringSE | FLASH_MAP_MANAGER_ATTRIBUTE FlashMapManager を保持するリクエスト属性の名前。 |
static StringSE | FLASH_MAP_MANAGER_BEAN_NAME この名前空間の Bean ファクトリ内の FlashMapManager オブジェクトの既知の名前。 |
static StringSE | HANDLER_ADAPTER_BEAN_NAME この名前空間の Bean ファクトリ内の HandlerAdapter オブジェクトの既知の名前。 |
static StringSE | HANDLER_EXCEPTION_RESOLVER_BEAN_NAME この名前空間の Bean ファクトリ内の HandlerExceptionResolver オブジェクトの既知の名前。 |
static StringSE | HANDLER_MAPPING_BEAN_NAME この名前空間の Bean ファクトリ内の HandlerMapping オブジェクトの既知の名前。 |
static StringSE | INPUT_FLASH_MAP_ATTRIBUTE 読み取り専用の Map<String,?> を保持するリクエスト属性の名前。以前のリクエストによって保存された「入力」フラッシュ属性があれば、それが含まれます。 |
static StringSE | LOCALE_RESOLVER_ATTRIBUTE ビューによって取得可能な現在の LocaleResolver を保持するリクエスト属性。 |
static StringSE | LOCALE_RESOLVER_BEAN_NAME この名前空間の Bean ファクトリ内の LocaleResolver オブジェクトの既知の名前。 |
static StringSE | MULTIPART_RESOLVER_BEAN_NAME この名前空間の Bean ファクトリ内の MultipartResolver オブジェクトの既知の名前。 |
static StringSE | OUTPUT_FLASH_MAP_ATTRIBUTE 「出力」 FlashMap を保持するリクエスト属性の名前。後続のリクエストのために保存する属性が含まれます。 |
static StringSE | PAGE_NOT_FOUND_LOG_CATEGORY リクエストに対してマップされたハンドラーが見つからない場合に使用するログカテゴリ。 |
protected static Log | pageNotFoundLogger リクエストに対してマップされたハンドラーが見つからない場合に使用する追加のロガー。 |
static StringSE | REQUEST_TO_VIEW_NAME_TRANSLATOR_BEAN_NAME この名前空間の Bean ファクトリ内の RequestToViewNameTranslator オブジェクトの既知の名前。 |
static StringSE | THEME_RESOLVER_ATTRIBUTE ビューによって取得可能な現在の ThemeResolver を保持するリクエスト属性。 |
static StringSE | THEME_RESOLVER_BEAN_NAME この名前空間の Bean ファクトリ内の ThemeResolver オブジェクトの既知の名前。 |
static StringSE | THEME_SOURCE_ATTRIBUTE ビューによって取得可能な現在の ThemeSource を保持するリクエスト属性。 |
static StringSE | VIEW_RESOLVER_BEAN_NAME この名前空間の Bean ファクトリ内の ViewResolver オブジェクトの既知の名前。 |
static StringSE | WEB_APPLICATION_CONTEXT_ATTRIBUTE 現在の Web アプリケーションコンテキストを保持するリクエスト属性。 |
DEFAULT_CONTEXT_CLASS, DEFAULT_NAMESPACE_SUFFIX, SERVLET_CONTEXT_PREFIX
logger
コンストラクターと説明 |
---|
DispatcherServlet() サーブレットの 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(javax.servlet.http.HttpServletRequest, javax.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 を返します。 |
ListSE<HandlerMapping> | getHandlerMappings() WebApplicationContext の型ごとに検出された、または DispatcherServlet.properties の戦略のデフォルトセットに基づいて初期化された、構成済みの HandlerMapping Bean を返します。 |
MultipartResolver | getMultipartResolver() このサーブレットの MultipartResolver がある場合は入手します。 |
ThemeSource | getThemeSource() このサーブレットの ThemeSource があれば、それを返します。そうでない場合は null を返します。 |
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) このリクエストのハンドラーが見つからなかった場合、NoHandlerFoundException をスローするかどうかを設定します。 |
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
addRequiredProperty, createEnvironment, getEnvironment, getServletName, init, initBeanWrapper, setEnvironment
doHeadEE, getLastModifiedEE, serviceEE
getInitParameterEE, getInitParameterNamesEE, getServletConfigEE, getServletContextEE, getServletInfoEE, initEE, logEE, logEE
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static final StringSE MULTIPART_RESOLVER_BEAN_NAME
public static final StringSE LOCALE_RESOLVER_BEAN_NAME
public static final StringSE THEME_RESOLVER_BEAN_NAME
public static final StringSE HANDLER_MAPPING_BEAN_NAME
public static final StringSE HANDLER_ADAPTER_BEAN_NAME
public static final StringSE HANDLER_EXCEPTION_RESOLVER_BEAN_NAME
public static final StringSE REQUEST_TO_VIEW_NAME_TRANSLATOR_BEAN_NAME
public static final StringSE VIEW_RESOLVER_BEAN_NAME
public static final StringSE FLASH_MAP_MANAGER_BEAN_NAME
public static final StringSE WEB_APPLICATION_CONTEXT_ATTRIBUTE
public static final StringSE LOCALE_RESOLVER_ATTRIBUTE
public static final StringSE THEME_RESOLVER_ATTRIBUTE
public static final StringSE THEME_SOURCE_ATTRIBUTE
public static final StringSE INPUT_FLASH_MAP_ATTRIBUTE
Map<String,?>
を保持するリクエスト属性の名前。以前のリクエストによって保存された「入力」フラッシュ属性があれば、それが含まれます。public static final StringSE OUTPUT_FLASH_MAP_ATTRIBUTE
FlashMap
を保持するリクエスト属性の名前。後続のリクエストのために保存する属性が含まれます。public static final StringSE FLASH_MAP_MANAGER_ATTRIBUTE
FlashMapManager
を保持するリクエスト属性の名前。public static final StringSE EXCEPTION_ATTRIBUTE
HandlerExceptionResolver
で解決されましたが、ビューがレンダリングされなかった例外を公開するリクエスト属性の名前(ステータスコードの設定など)。public static final StringSE PAGE_NOT_FOUND_LOG_CATEGORY
protected static final Log pageNotFoundLogger
public DispatcherServlet()
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
クラスを使用する必要があるかが示されます。
public DispatcherServlet(WebApplicationContext webApplicationContext)
DispatcherServlet
を作成します。このコンストラクターは、ServletContext.addServlet(java.lang.String, java.lang.String)
EE API を介してインスタンスベースのサーブレットの登録が可能な Servlet 3.0+ 環境で役立ちます。このコンストラクターを使用すると、次のプロパティ / init-params が無視されます:
FrameworkServlet.setContextClass(Class)
/'contextClass' FrameworkServlet.setContextConfigLocation(String)
/'contextConfigLocation' FrameworkServlet.setContextAttribute(String)
/'contextAttribute' FrameworkServlet.setNamespace(String)
/' 名前空間 '指定された Web アプリケーションコンテキストは、まだリフレッシュされていない場合があります。まだリフレッシュされていない場合(推奨されるアプローチ)、次のようになります。
ServletContext
および ServletConfig
オブジェクトは、アプリケーションコンテキストに委譲されます。FrameworkServlet.postProcessWebApplicationContext(org.springframework.web.context.ConfigurableWebApplicationContext)
が呼び出されます FrameworkServlet.setContextInitializers(org.springframework.context.ApplicationContextInitializer<?>...)
プロパティを通じて指定された ApplicationContextInitializer
が適用されます。ConfigurableApplicationContext
を実装する場合、refresh()
が呼び出されます 使用例については、WebApplicationInitializer
を参照してください。
webApplicationContext
- 使用するコンテキスト FrameworkServlet.initWebApplicationContext()
, FrameworkServlet.configureAndRefreshWebApplicationContext(org.springframework.web.context.ConfigurableWebApplicationContext)
, WebApplicationInitializer
public void setDetectAllHandlerMappings(boolean detectAllHandlerMappings)
デフォルトは "true" です。コンテキストで複数の HandlerMapping Bean が定義されているにもかかわらず、このサーブレットで単一の HandlerMapping を使用する場合は、これをオフにします。
public void setDetectAllHandlerAdapters(boolean detectAllHandlerAdapters)
デフォルトは "true" です。コンテキストで複数の HandlerAdapter Bean が定義されているにもかかわらず、このサーブレットで単一の HandlerAdapter を使用する場合は、これをオフにします。
public void setDetectAllHandlerExceptionResolvers(boolean detectAllHandlerExceptionResolvers)
デフォルトは "true" です。コンテキストで複数の HandlerExceptionResolver Bean が定義されているにもかかわらず、このサーブレットで単一の HandlerExceptionResolver を使用する場合は、これをオフにします。
public void setDetectAllViewResolvers(boolean detectAllViewResolvers)
デフォルトは "true" です。コンテキストで複数の ViewResolver Bean が定義されているにもかかわらず、このサーブレットで単一の ViewResolver を使用する場合は、これをオフにします。
public void setThrowExceptionIfNoHandlerFound(boolean throwExceptionIfNoHandlerFound)
@ExceptionHandler
コントローラーメソッドでキャッチできます。DefaultServletHttpRequestHandler
が使用される場合、リクエストは常にデフォルトのサーブレットに転送され、その場合 NoHandlerFoundException は決してスローされないことに注意してください。
デフォルトは "false" です。これは、DispatcherServlet がサーブレットレスポンスを介して NOT_FOUND エラーを送信することを意味します。
public void setCleanupAfterInclude(boolean cleanupAfterInclude)
デフォルトは "true" です。これを強くお勧めします。ビューは、(動的)インクルードによって設定されたリクエスト属性に依存すべきではありません。これにより、含まれているコントローラーによってレンダリングされた JSP ビューは、副作用を引き起こすことなく、メイン JSP と同じ名前であっても、任意のモデル属性を使用できます。特別な必要がある場合のみ、これをオフにします。たとえば、メインの JSP が意図的に含まれているコントローラーによってレンダリングされた JSP ビューの属性にアクセスできるようにする場合です。
protected void onRefresh(ApplicationContext context)
FrameworkServlet
の onRefresh
context
- 現在の WebApplicationContextFrameworkServlet.refresh()
protected void initStrategies(ApplicationContext context)
さらに戦略オブジェクトを初期化するために、サブクラスでオーバーライドされる場合があります。
@Nullable public final ThemeSource getThemeSource()
null
を返します。ThemeSource インターフェースを実装している場合、デフォルトでは WebApplicationContext を ThemeSource として返します。
FrameworkServlet.getWebApplicationContext()
@Nullable public final MultipartResolver getMultipartResolver()
null
(マルチパートサポートが利用できないことを示す)@Nullable public final ListSE<HandlerMapping> getHandlerMappings()
WebApplicationContext
の型ごとに検出された、または DispatcherServlet.properties の戦略のデフォルトセットに基づいて初期化された、構成済みの HandlerMapping
Bean を返します。 注意 : onRefresh(ApplicationContext)
の前に呼び出された場合、このメソッドは null
を返すことがあります。
null
protected <T> T getDefaultStrategy(ApplicationContext context, ClassSE<T> strategyInterface)
デフォルトの実装は getDefaultStrategies(org.springframework.context.ApplicationContext, java.lang.Class<T>)
に委譲し、リスト内の単一のオブジェクトを期待します。
context
- 現在の WebApplicationContextstrategyInterface
- 戦略インターフェース getDefaultStrategies(org.springframework.context.ApplicationContext, java.lang.Class<T>)
protected <T> ListSE<T> getDefaultStrategies(ApplicationContext context, ClassSE<T> strategyInterface)
デフォルトの実装では、"DispatcherServlet.properties" ファイル(DispatcherServlet クラスと同じパッケージ内)を使用して、クラス名を決定します。コンテキストの BeanFactory を通じて戦略オブジェクトをインスタンス化します。
context
- 現在の WebApplicationContextstrategyInterface
- 戦略インターフェース protected ObjectSE createDefaultStrategy(ApplicationContext context, ClassSE<?> clazz)
デフォルトの実装では AutowireCapableBeanFactory.createBean(java.lang.Class<T>)
を使用します。
context
- 現在の WebApplicationContextclazz
- インスタンス化する戦略実装クラス ApplicationContext.getAutowireCapableBeanFactory()
, AutowireCapableBeanFactory.createBean(java.lang.Class<T>)
protected void doService(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE
doDispatch(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
に委譲します。FrameworkServlet
の doService
request
- 現在の HTTP リクエスト response
- 現在の HTTP レスポンス ExceptionSE
- あらゆる種類の処理が失敗した場合 HttpServlet.doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
EE, HttpServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
EEprotected void doDispatch(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE
ハンドラーは、サーブレットの HandlerMappings を順番に適用することにより取得されます。HandlerAdapter は、サーブレットにインストールされている HandlerAdapters を照会して、ハンドラークラスをサポートする最初の HandlerAdapter を見つけることによって取得されます。
すべての HTTP メソッドは、このメソッドによって処理されます。許容されるメソッドを決定するのは、HandlerAdapters またはハンドラー自身です。
request
- 現在の HTTP リクエスト response
- 現在の HTTP レスポンス ExceptionSE
- あらゆる種類の処理が失敗した場合 protected LocaleContext buildLocaleContext(HttpServletRequestEE request)
デフォルトの実装では、ディスパッチャーの LocaleResolver を使用して現在のロケールを取得しますが、これはリクエスト中に変更される可能性があります。
FrameworkServlet
の buildLocaleContext
request
- 現在の HTTP リクエスト LocaleContextHolder.setLocaleContext(org.springframework.context.i18n.LocaleContext)
protected HttpServletRequestEE checkMultipart(HttpServletRequestEE request) throws MultipartException
マルチパートリゾルバーが設定されていない場合は、既存のリクエストを使用します。
request
- 現在の HTTP リクエスト MultipartException
MultipartResolver.resolveMultipart(javax.servlet.http.HttpServletRequest)
protected void cleanupMultipart(HttpServletRequestEE request)
request
- 現在の HTTP リクエスト MultipartResolver.cleanupMultipart(org.springframework.web.multipart.MultipartHttpServletRequest)
@Nullable protected HandlerExecutionChain getHandler(HttpServletRequestEE request) throws ExceptionSE
すべてのハンドラーマッピングを順番に試行します。
request
- 現在の HTTP リクエスト null
ExceptionSE
protected void noHandlerFound(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE
request
- 現在の HTTP リクエスト response
- 現在の HTTP レスポンス ExceptionSE
- レスポンスの準備に失敗した場合 protected HandlerAdapter getHandlerAdapter(ObjectSE handler) throws ServletExceptionEE
handler
- アダプターを見つけるためのハンドラーオブジェクト ServletExceptionEE
- ハンドラーの HandlerAdapter が見つからない場合。これは致命的なエラーです。@Nullable protected ModelAndView processHandlerException(HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler, ExceptionSE ex) throws ExceptionSE
request
- 現在の HTTP リクエスト response
- 現在の HTTP レスポンス handler
- 実行されたハンドラー、または例外時に何も選択されなかった場合は null
(たとえば、マルチパート解決が失敗した場合)ex
- ハンドラーの実行中にスローされた例外 ExceptionSE
- エラー ModelAndView が見つからなかった場合 protected void render(ModelAndView mv, HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE
これは、リクエストを処理する最後の段階です。ビューを名前で解決する必要がある場合があります。
mv
- レンダリングする ModelAndViewrequest
- 現在の HTTP サーブレットリクエスト response
- 現在の HTTP サーブレットレスポンス ServletExceptionEE
- ビューが欠落しているか、解決できない場合 ExceptionSE
- ビューのレンダリングに問題がある場合 @Nullable protected StringSE getDefaultViewName(HttpServletRequestEE request) throws ExceptionSE
request
- 現在の HTTP サーブレットリクエスト null
)ExceptionSE
- ビュー名の変換に失敗した場合 @Nullable protected View resolveViewName(StringSE viewName, @Nullable MapSE<StringSE,ObjectSE> model, LocaleSE locale, HttpServletRequestEE request) throws ExceptionSE
デフォルトの実装は、このディスパッチャーのすべての ViewResolvers をリクエストします。潜在的に特定のモデル属性またはリクエストパラメーターに基づいて、カスタム解決戦略のためにオーバーライドできます。
viewName
- 解決するビューの名前 model
- ビューに渡されるモデル locale
- 現在のロケール request
- 現在の HTTP サーブレットリクエスト null
ExceptionSE
- ビューを解決できない場合 (通常、実際の View オブジェクトの作成に問題がある場合)ViewResolver.resolveViewName(java.lang.String, java.util.Locale)