クラス FrameworkServlet
- 実装されたすべてのインターフェース:
ServletEE
、ServletConfigEE
、SerializableSE
、Aware
、ApplicationContextAware
、EnvironmentAware
、EnvironmentCapable
- 既知の直属サブクラス
DispatcherServlet
このクラスは、次の機能を提供します。
- サーブレットごとに
WebApplicationContext
インスタンスを管理します。サーブレットの構成は、サーブレットの名前空間の Bean によって決定されます。 - リクエストが正常に処理されたかどうかに関係なく、リクエスト処理時にイベントを発行します。
サブクラスは、リクエストを処理するために doService(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
を実装する必要があります。これは HttpServlet を直接拡張するのではなく HttpServletBean
を継承するため、Bean プロパティが自動的にそれにマップされます。サブクラスは、カスタム初期化のために initFrameworkServlet()
をオーバーライドできます。
サーブレットの init-param レベルで "contextClass" パラメーターを検出し、見つからない場合はデフォルトのコンテキストクラス XmlWebApplicationContext
にフォールバックします。デフォルトの FrameworkServlet
では、カスタムコンテキストクラスで ConfigurableWebApplicationContext
SPI を実装する必要があることに注意してください。
1 つ以上の ApplicationContextInitializer
クラスを指定するオプションの "contextInitializerClasses" サーブレット初期化パラメーターを受け入れます。管理対象 Web アプリケーションコンテキストはこれらの初期化子に委譲され、プロパティソースの追加やコンテキストの環境に対するプロファイルのアクティブ化など、追加のプログラム構成が可能になります。" ルート " Web アプリケーションコンテキストと同じセマンティクスを持つ "contextInitializerClasses" コンテキストパラメーターをサポートする ContextLoader
も参照してください。
"contextConfigLocation" サーブレット init-param をコンテキストインスタンスに渡し、それを "test-servlet.xml, myServlet.xml" のように、任意の数のコンマとスペースで区切ることができる複数のファイルパスに解析します。明示的に指定されていない場合、コンテキスト実装はサーブレットの名前空間からデフォルトの場所を構築することになっています。
メモ: 複数の構成場所がある場合、少なくとも Spring のデフォルトの ApplicationContext 実装を使用している場合、後の Bean 定義は以前にロードされたファイルで定義された定義をオーバーライドします。これを利用して、追加の XML ファイルを介して特定の Bean 定義を意図的に上書きできます。
デフォルトの名前空間は "'servlet-name'-servlet" です。たとえば、servlet-name が "test" の場合は "test-servlet" になります (XmlWebApplicationContext の場合は "/WEB-INF/test-servlet.xml" のデフォルトの場所になります)。名前空間は、"namespace" サーブレットの init-param を介して明示的に設定することもできます。
FrameworkServlet
には、内部で独自のコンテキストを作成するのではなく、Web アプリケーションコンテキストを挿入することができます。これは、サーブレットインスタンスのプログラムによる登録をサポートする Servlet 3.0+ 環境で役立ちます。詳細については、FrameworkServlet(WebApplicationContext)
Javadoc を参照してください。
- 作成者:
- Rod Johnson, Juergen Hoeller, Sam Brannen, Chris Beams, Rossen Stoyanchev, Phillip Webb
- 関連事項:
フィールドのサマリー
フィールド修飾子と型フィールド説明static final ClassSE<?>
FrameworkServlet のデフォルトのコンテキストクラス。static final StringSE
WebApplicationContext 名前空間のサフィックス。static final StringSE
WebApplicationContext の ServletContext 属性のプレフィックス。クラス org.springframework.web.servlet.HttpServletBean から継承されたフィールド
logger
クラス jakarta.servlet.http.HttpServletEE から継承されたフィールド
LEGACY_DO_HEADEE
コンストラクターのサマリー
コンストラクターコンストラクター説明サーブレットの init-params によって提供されるデフォルトと値に基づいて独自の内部 Web アプリケーションコンテキストを作成する新しいFrameworkServlet
を作成します。FrameworkServlet
(WebApplicationContext webApplicationContext) 指定された Web アプリケーションコンテキストで新しいFrameworkServlet
を作成します。メソッドのサマリー
修飾子と型メソッド説明protected void
WebApplicationContext がリフレッシュされる前に、"contextInitializerClasses" サーブレットの init-param で指定されたApplicationContextInitializer
インスタンスに委譲します。protected LocaleContext
buildLocaleContext
(HttpServletRequestEE request) 指定されたリクエストの LocaleContext を構築し、リクエストのプライマリロケールを現在のロケールとして公開します。protected ServletRequestAttributes
buildRequestAttributes
(HttpServletRequestEE request, HttpServletResponseEE response, RequestAttributes previousAttributes) 事前バインドされた属性(およびその型)を考慮して、指定されたリクエスト(場合によってはレスポンスへの参照も保持している可能性があります)の ServletRequestAttributes をビルドします。protected void
protected WebApplicationContext
このサーブレットの WebApplicationContext(デフォルトのXmlWebApplicationContext
または設定されている場合はcustom context class
)をインスタンス化します。protected WebApplicationContext
このサーブレットの WebApplicationContext(デフォルトのXmlWebApplicationContext
または設定されている場合はcustom context class
)をインスタンス化します。void
destroy()
このサーブレットの WebApplicationContext を閉じます。protected final void
doDelete
(HttpServletRequestEE request, HttpServletResponseEE response) protected final void
doGet
(HttpServletRequestEE request, HttpServletResponseEE response) GET リクエストを processRequest/doService に委譲します。protected void
doOptions
(HttpServletRequestEE request, HttpServletResponseEE response) 必要に応じて、OPTIONS リクエストをprocessRequest(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
に委譲します。protected final void
doPost
(HttpServletRequestEE request, HttpServletResponseEE response) protected final void
doPut
(HttpServletRequestEE request, HttpServletResponseEE response) protected abstract void
doService
(HttpServletRequestEE request, HttpServletResponseEE response) サブクラスは、GET、POST、PUT、DELETE の集中コールバックを受信して、リクエスト処理の作業を行うためにこのメソッドを実装する必要があります。protected void
doTrace
(HttpServletRequestEE request, HttpServletResponseEE response) 必要に応じて、TRACE リクエストをprocessRequest(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
に委譲します。protected WebApplicationContext
このサーブレットが使用することになっているWebApplicationContext
を取得するために使用する必要がある ServletContext 属性の名前を返します。ClassSE<?>
カスタムコンテキストクラスを返します。明示的なコンテキスト構成の場所があれば、それを返します。カスタム WebApplicationContext ID を返します(ある場合)。このサーブレットの名前空間を返します。カスタム名前空間が設定されていない場合は、デフォルトのスキームに戻ります。たとえば、"test" という名前のサーブレットの場合は "test-servlet" になります。このサーブレットの WebApplicationContext の ServletContext 属性名を返します。protected StringSE
指定されたリクエストのユーザー名を特定します。final WebApplicationContext
このサーブレットの WebApplicationContext を返します。protected void
このメソッドは、Bean プロパティが設定され、WebApplicationContext がロードされた後に呼び出されます。protected final void
HttpServletBean
のオーバーライドされたメソッド。Bean プロパティが設定された後に呼び出されます。protected WebApplicationContext
このサーブレットの WebApplicationContext を初期化して公開します。boolean
機密性が高い可能性のあるロギングの場合、DEBUG および TRACE レベルでのリクエストの詳細が許可されます。void
このサーブレットの WebApplicationContext からリフレッシュイベントを受け取るコールバック。protected void
onRefresh
(ApplicationContext context) オーバーライドしてサーブレット固有のリフレッシュ作業を追加できるテンプレートメソッド。protected void
このサーブレットのコンテキストとしてリフレッシュおよびアクティブ化される前に、指定された WebApplicationContext を後処理します。protected final void
processRequest
(HttpServletRequestEE request, HttpServletResponseEE response) このリクエストを処理し、結果に関係なくイベントを公開します。void
refresh()
このサーブレットのアプリケーションコンテキストと、サーブレットの依存状態をリフレッシュします。protected void
service
(HttpServletRequestEE request, HttpServletResponseEE response) PATCH または非標準の HTTP メソッド (WebDAV) を使用してリクエストをインターセプトするために、親クラスの実装をオーバーライドします。void
setApplicationContext
(ApplicationContext applicationContext) ApplicationContextAware
を介して Spring によって呼び出され、現在のアプリケーションコンテキストを挿入します。void
setContextAttribute
(StringSE contextAttribute) このサーブレットが使用するはずのWebApplicationContext
を取得するために使用する ServletContext 属性の名前を設定します。void
setContextClass
(ClassSE<?> contextClass) カスタムコンテキストクラスを設定します。void
setContextConfigLocation
(StringSE contextConfigLocation) 名前空間から構築されたデフォルトの場所に依存するのではなく、コンテキスト構成場所を明示的に設定します。void
setContextId
(StringSE contextId) 基になる BeanFactory の直列化 ID として使用されるカスタム WebApplicationContext ID を指定します。void
setContextInitializerClasses
(StringSE contextInitializerClasses) オプションの "contextInitializerClasses" サーブレット init-param ごとに、完全修飾ApplicationContextInitializer
クラス名のセットを指定します。void
setContextInitializers
(ApplicationContextInitializer<?>... initializers) このFrameworkServlet
で使用されるアプリケーションコンテキストを初期化するために使用するApplicationContextInitializer
インスタンスを指定します。void
setDispatchOptionsRequest
(boolean dispatchOptionsRequest) このサーブレットが HTTP OPTIONS リクエストをdoService(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
メソッドにディスパッチするかどうかを設定します。void
setDispatchTraceRequest
(boolean dispatchTraceRequest) このサーブレットが HTTP TRACE リクエストをdoService(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
メソッドにディスパッチするかどうかを設定します。void
setEnableLoggingRequestDetails
(boolean enable) DEBUG レベルのリクエストパラメーターと TRACE レベルのヘッダーをログに記録するかどうか。void
setNamespace
(StringSE namespace) このサーブレットのカスタム名前空間を設定し、デフォルトのコンテキスト構成の場所を構築するために使用します。void
setPublishContext
(boolean publishContext) このサーブレットのコンテキストを ServletContext 属性として公開するかどうかを設定します。これは、Web コンテナー内のすべてのオブジェクトで使用できます。void
setPublishEvents
(boolean publishEvents) このサーブレットが各リクエストの最後に ServletRequestHandledEvent を公開するかどうかを設定します。void
setThreadContextInheritable
(boolean threadContextInheritable) LocaleContext および RequestAttributes を子スレッドの継承可能として公開するかどうかを設定します(InheritableThreadLocal
SE を使用)。クラス 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
フィールドの詳細
DEFAULT_NAMESPACE_SUFFIX
WebApplicationContext 名前空間のサフィックス。このクラスのサーブレットにコンテキストで "test" という名前を付けると、サーブレットが使用する名前空間は "test-servlet" に解決されます。- 関連事項:
DEFAULT_CONTEXT_CLASS
FrameworkServlet のデフォルトのコンテキストクラス。SERVLET_CONTEXT_PREFIX
WebApplicationContext の ServletContext 属性のプレフィックス。補完はサーブレット名です。
コンストラクターの詳細
FrameworkServlet
public FrameworkServlet()サーブレットの init-params によって提供されるデフォルトと値に基づいて独自の内部 Web アプリケーションコンテキストを作成する新しいFrameworkServlet
を作成します。通常、Servlet 2.5 以前の環境で使用されます。サーブレット登録の唯一のオプションは、引数なしのコンストラクターの使用を必要とするweb.xml
によるものです。setContextConfigLocation(java.lang.String)
(init-param 'contextConfigLocation') を呼び出すと、デフォルトの XmlWebApplicationContext によってロードされる XML ファイルが指定されます。setContextClass(java.lang.Class<?>)
(init-param 'contextClass' ) を呼び出すと、デフォルトのXmlWebApplicationContext
がオーバーライドされ、AnnotationConfigWebApplicationContext
などの代替クラスを指定できるようになります。setContextInitializerClasses(java.lang.String)
(init-param 'contextInitializerClasses' ) を呼び出すと、refresh() の前に内部アプリケーションコンテキストをさらに構成するためにどのApplicationContextInitializer
クラスを使用する必要があるかが示されます。FrameworkServlet
指定された Web アプリケーションコンテキストで新しいFrameworkServlet
を作成します。このコンストラクターは、ServletContext.addServlet(java.lang.String, java.lang.String)
EE API を介してサーブレットのインスタンスベースの登録が可能なサーブレット環境で役立ちます。このコンストラクターを使用すると、次のプロパティ / init-params が無視されます:
setContextClass(Class)
/'contextClass'setContextConfigLocation(String)
/'contextConfigLocation'setContextAttribute(String)
/'contextAttribute'setNamespace(String)
/' 名前空間 '
指定された Web アプリケーションコンテキストは、まだリフレッシュされている場合とされていない場合があります。(a)
ConfigurableWebApplicationContext
の実装であり、(b)まだリフレッシュされていない場合(推奨されるアプローチ)、次のようになります。- 指定されたコンテキストにまだ parent がない場合、ルートアプリケーションコンテキストが親として設定されます。
- 指定されたコンテキストにまだ id が割り当てられていない場合、1 つが割り当てられます
ServletContext
およびServletConfig
オブジェクトは、アプリケーションコンテキストに委譲されます。postProcessWebApplicationContext(org.springframework.web.context.ConfigurableWebApplicationContext)
が呼び出されます- "contextInitializerClasses" 初期化パラメーターまたは
setContextInitializers(org.springframework.context.ApplicationContextInitializer<?>...)
プロパティを通じて指定されたApplicationContextInitializers
が適用されます。 refresh()
が呼び出されます
ConfigurableWebApplicationContext
を実装していない場合、ユーザーが特定のニーズに応じてこれらのアクションを実行した(または実行しない)という仮定では、上記のいずれも発生しません。使用例については、
WebApplicationInitializer
を参照してください。- パラメーター:
webApplicationContext
- 使用するコンテキスト- 関連事項:
メソッドの詳細
setContextAttribute
このサーブレットが使用するはずのWebApplicationContext
を取得するために使用する ServletContext 属性の名前を設定します。getContextAttribute
このサーブレットが使用することになっているWebApplicationContext
を取得するために使用する必要がある ServletContext 属性の名前を返します。setContextClass
カスタムコンテキストクラスを設定します。このクラスはWebApplicationContext
型である必要があります。デフォルトの FrameworkServlet 実装を使用する場合、コンテキストクラスは
ConfigurableWebApplicationContext
インターフェースも実装する必要があります。getContextClass
カスタムコンテキストクラスを返します。setContextId
基になる BeanFactory の直列化 ID として使用されるカスタム WebApplicationContext ID を指定します。getContextId
カスタム WebApplicationContext ID を返します(ある場合)。setNamespace
このサーブレットのカスタム名前空間を設定し、デフォルトのコンテキスト構成の場所を構築するために使用します。getNamespace
このサーブレットの名前空間を返します。カスタム名前空間が設定されていない場合は、デフォルトのスキームに戻ります。たとえば、"test" という名前のサーブレットの場合は "test-servlet" になります。setContextConfigLocation
名前空間から構築されたデフォルトの場所に依存するのではなく、コンテキスト構成場所を明示的に設定します。この場所の文字列は、任意の数のコンマとスペースで区切られた複数の場所で構成できます。getContextConfigLocation
明示的なコンテキスト構成の場所があれば、それを返します。setContextInitializers
このFrameworkServlet
で使用されるアプリケーションコンテキストを初期化するために使用するApplicationContextInitializer
インスタンスを指定します。setContextInitializerClasses
オプションの "contextInitializerClasses" サーブレット init-param ごとに、完全修飾ApplicationContextInitializer
クラス名のセットを指定します。setPublishContext
public void setPublishContext(boolean publishContext) このサーブレットのコンテキストを ServletContext 属性として公開するかどうかを設定します。これは、Web コンテナー内のすべてのオブジェクトで使用できます。デフォルトは "true" です。これはテスト中に特に便利ですが、他のアプリケーションオブジェクトがこの方法でコンテキストにアクセスできるようにするのが良い方法かどうかは議論の余地があります。
setPublishEvents
public void setPublishEvents(boolean publishEvents) このサーブレットが各リクエストの最後に ServletRequestHandledEvent を公開するかどうかを設定します。デフォルトは "true" です。このようなイベントに依存する ApplicationListeners がない場合は、パフォーマンスを少し向上させるためにオフにすることができます。setThreadContextInheritable
public void setThreadContextInheritable(boolean threadContextInheritable) LocaleContext および RequestAttributes を子スレッドの継承可能として公開するかどうかを設定します(InheritableThreadLocal
SE を使用)。生成されたバックグラウンドスレッドへの副作用を回避するため、デフォルトは "false" です。これを "true" に切り替えて、リクエストの処理中に生成され、このリクエストにのみ使用される(つまり、スレッドを再利用せずに、最初のタスクの後で終了する)カスタムの子スレッドの継承を有効にします。
警告 : 必要に応じて新しいスレッドを追加する可能性があるように構成されているスレッドプール (たとえば、JDK
ThreadPoolExecutor
SE) にアクセスする場合は、子スレッドに継承を使用しないでください。継承を使用すると、継承されたコンテキストがそのようなプールされたスレッドに公開されるためです。setDispatchOptionsRequest
public void setDispatchOptionsRequest(boolean dispatchOptionsRequest) このサーブレットが HTTP OPTIONS リクエストをdoService(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
メソッドにディスパッチするかどうかを設定します。FrameworkServlet
のデフォルトは "false" で、HttpServlet
EE のデフォルトの動作を適用します(つまり、OPTIONS リクエストへのレスポンスとしてすべての標準 HTTP リクエストメソッドを列挙します)。ただし、4.3 以降、DispatcherServlet
は、OPTIONS の組み込みサポートにより、このプロパティをデフォルトで "true" に設定していることに注意してください。他の HTTP リクエストと同様に、OPTIONS リクエストが通常のディスパッチチェーンを経由することを希望する場合は、このフラグをオンにします。これは通常、コントローラーがそれらのリクエストを受信することを意味します。それらのエンドポイントが実際に OPTIONS リクエストを処理できることを確認してください。
コントローラーが(OPTIONS レスポンスに必要な)「許可」ヘッダーを設定しなかった場合でも、HttpServlet のデフォルトの OPTIONS 処理が適用されます。
setDispatchTraceRequest
public void setDispatchTraceRequest(boolean dispatchTraceRequest) このサーブレットが HTTP TRACE リクエストをdoService(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
メソッドにディスパッチするかどうかを設定します。デフォルトは "false" で、
HttpServlet
EE のデフォルトの動作を適用します(つまり、受信したメッセージをクライアントに反映します)。他の HTTP リクエストと同様に、TRACE リクエストが通常のディスパッチチェーンを通過するようにしたい場合は、このフラグをオンにします。これは通常、コントローラーがそれらのリクエストを受信することを意味します。それらのエンドポイントが実際に TRACE リクエストを処理できることを確認してください。
HttpServlet のデフォルトの TRACE 処理は、コントローラーがコンテンツ型 'message/http'(TRACE レスポンスに必要な)のレスポンスを生成しない場合に適用されます。
setEnableLoggingRequestDetails
public void setEnableLoggingRequestDetails(boolean enable) DEBUG レベルのリクエストパラメーターと TRACE レベルのヘッダーをログに記録するかどうか。どちらにも機密情報が含まれている可能性があります。デフォルトでは、リクエストの詳細が表示されないように
false
に設定されます。- パラメーター:
enable
- 有効にするかどうか- 導入:
- 5.1
isEnableLoggingRequestDetails
public boolean isEnableLoggingRequestDetails()機密性が高い可能性のあるロギングの場合、DEBUG および TRACE レベルでのリクエストの詳細が許可されます。- 導入:
- 5.1
setApplicationContext
現在のアプリケーションコンテキストを挿入するために、ApplicationContextAware
を介して Spring によって呼び出されます。この方法により、FrameworkServlets をbootstrapped
コンテキストではなく、finding
ではなく既存のWebApplicationContext
内の Spring Bean として登録できます。主に埋め込まれたサーブレットコンテナーでの使用をサポートするために追加されました。
- 次で指定:
- インターフェース
ApplicationContextAware
のsetApplicationContext
- パラメーター:
applicationContext
- このオブジェクトによって使用される ApplicationContext オブジェクト- 導入:
- 4.0
- 関連事項:
initServletBean
HttpServletBean
のオーバーライドされたメソッド。Bean プロパティが設定された後に呼び出されます。このサーブレットの WebApplicationContext を作成します。- オーバーライド:
- クラス
HttpServletBean
のinitServletBean
- 例外:
ServletExceptionEE
- サブクラスの初期化が失敗した場合
initWebApplicationContext
このサーブレットの WebApplicationContext を初期化して公開します。コンテキストを実際に作成するための
createWebApplicationContext(org.springframework.context.ApplicationContext)
へのデリゲート。サブクラスでオーバーライドできます。- 戻り値:
- WebApplicationContext インスタンス
- 関連事項:
findWebApplicationContext
configured name
を使用して、ServletContext
属性からWebApplicationContext
を取得します。このサーブレットが初期化(または起動)される前に、WebApplicationContext
がすでにロードされ、ServletContext
に格納されている必要があります。サブクラスはこのメソッドをオーバーライドして、別の
WebApplicationContext
取得戦略を提供できます。- 戻り値:
- このサーブレットの WebApplicationContext、または見つからない場合は
null
- 関連事項:
createWebApplicationContext
このサーブレットの WebApplicationContext(デフォルトのXmlWebApplicationContext
または設定されている場合はcustom context class
)をインスタンス化します。この実装は、カスタムコンテキストが
ConfigurableWebApplicationContext
インターフェースを実装することを期待しています。サブクラスでオーバーライドできます。このサーブレットインスタンスを、作成されたコンテキストでアプリケーションリスナーとして登録し(
callback
をトリガーするため)、コンテキストインスタンスを返す前にConfigurableApplicationContext.refresh()
を呼び出すことを忘れないでください。- パラメーター:
parent
- 使用する親 ApplicationContext、ない場合はnull
- 戻り値:
- このサーブレットの WebApplicationContext
- 関連事項:
configureAndRefreshWebApplicationContext
createWebApplicationContext
このサーブレットの WebApplicationContext をインスタンス化します(デフォルトのXmlWebApplicationContext
またはcustom context class
(設定されている場合))。#createWebApplicationContext(ApplicationContext)にデリゲートします。- パラメーター:
parent
- 使用する親 WebApplicationContext、ない場合はnull
- 戻り値:
- このサーブレットの WebApplicationContext
- 関連事項:
postProcessWebApplicationContext
このサーブレットのコンテキストとしてリフレッシュおよびアクティブ化される前に、指定された WebApplicationContext を後処理します。デフォルトの実装は空です。このメソッドが戻った後、
refresh()
が自動的に呼び出されます。このメソッドは、サブクラスがアプリケーションコンテキストを変更できるように設計されていますが、
initWebApplicationContext()
は、エンドユーザーがApplicationContextInitializers
を使用してコンテキストを変更できるように設計されていることに注意してください。- パラメーター:
wac
- 設定された WebApplicationContext (まだリフレッシュされていません)- 関連事項:
applyInitializers
WebApplicationContext がリフレッシュされる前に、"contextInitializerClasses" サーブレットの init-param で指定されたApplicationContextInitializer
インスタンスに委譲します。postProcessWebApplicationContext(org.springframework.web.context.ConfigurableWebApplicationContext)
も参照してください。これは(エンドユーザーではなく)サブクラスがアプリケーションコンテキストを変更できるように設計されており、このメソッドの直前に呼び出されます。- パラメーター:
wac
- 設定された WebApplicationContext (まだリフレッシュされていません)- 関連事項:
getServletContextAttributeName
このサーブレットの WebApplicationContext の ServletContext 属性名を返します。デフォルトの実装は
SERVLET_CONTEXT_PREFIX + servlet name
を返します。getWebApplicationContext
このサーブレットの WebApplicationContext を返します。initFrameworkServlet
このメソッドは、Bean プロパティが設定され、WebApplicationContext がロードされた後に呼び出されます。デフォルトの実装は空です。サブクラスはこのメソッドをオーバーライドして、必要な初期化を実行できます。- 例外:
ServletExceptionEE
- 初期化例外の場合
refresh
public void refresh()このサーブレットのアプリケーションコンテキストと、サーブレットの依存状態をリフレッシュします。onApplicationEvent
このサーブレットの WebApplicationContext からリフレッシュイベントを受け取るコールバック。デフォルトの実装は
onRefresh(org.springframework.context.ApplicationContext)
を呼び出し、このサーブレットのコンテキスト依存状態のリフレッシュをトリガーします。- パラメーター:
event
- 受信 ApplicationContext イベント
onRefresh
サーブレット固有のリフレッシュ作業を追加するためにオーバーライドできるテンプレートメソッド。コンテキストのリフレッシュが成功した後に呼び出されます。この実装は空です。
- パラメーター:
context
- 現在の WebApplicationContext- 関連事項:
destroy
public void destroy()このサーブレットの WebApplicationContext を閉じます。- 次で指定:
- インターフェース
ServletEE
のdestroyEE
- オーバーライド:
- クラス
GenericServletEE
のdestroyEE
- 関連事項:
service
protected void service(HttpServletRequestEE request, HttpServletResponseEE response) throws ServletExceptionEE, IOExceptionSE PATCH または非標準の HTTP メソッド (WebDAV) を使用してリクエストをインターセプトするために、親クラスの実装をオーバーライドします。- オーバーライド:
- クラス
HttpServletEE
のserviceEE
- 例外:
ServletExceptionEE
IOExceptionSE
doGet
protected final void doGet(HttpServletRequestEE request, HttpServletResponseEE response) throws ServletExceptionEE, IOExceptionSE GET リクエストを processRequest/doService に委譲します。また、コンテンツの長さだけをキャプチャーする
NoBodyResponse
を使用して、HttpServlet のdoHead
のデフォルト実装によっても呼び出されます。doPost
protected final void doPost(HttpServletRequestEE request, HttpServletResponseEE response) throws ServletExceptionEE, IOExceptionSE doPut
protected final void doPut(HttpServletRequestEE request, HttpServletResponseEE response) throws ServletExceptionEE, IOExceptionSE doDelete
protected final void doDelete(HttpServletRequestEE request, HttpServletResponseEE response) throws ServletExceptionEE, IOExceptionSE doOptions
protected void doOptions(HttpServletRequestEE request, HttpServletResponseEE response) throws ServletExceptionEE, IOExceptionSE 必要に応じて、OPTIONS リクエストをprocessRequest(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
に委譲します。それ以外の場合、およびディスパッチ後も "Allow" ヘッダーが設定されていない場合にも、HttpServlet の標準 OPTIONS 処理を適用します。
doTrace
protected void doTrace(HttpServletRequestEE request, HttpServletResponseEE response) throws ServletExceptionEE, IOExceptionSE 必要に応じて、TRACE リクエストをprocessRequest(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
に委譲します。それ以外の場合は、HttpServlet の標準 TRACE 処理を適用します。
processRequest
protected final void processRequest(HttpServletRequestEE request, HttpServletResponseEE response) throws ServletExceptionEE, IOExceptionSE このリクエストを処理し、結果に関係なくイベントを公開します。実際のイベント処理は、抽象
doService(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
テンプレートメソッドによって実行されます。buildLocaleContext
指定されたリクエストの LocaleContext を構築し、リクエストのプライマリロケールを現在のロケールとして公開します。- パラメーター:
request
- 現在の HTTP リクエスト- 戻り値:
- 対応する LocaleContext、またはバインドするものがない場合は
null
- 関連事項:
buildRequestAttributes
@Nullable protected ServletRequestAttributes buildRequestAttributes(HttpServletRequestEE request, @Nullable HttpServletResponseEE response, @Nullable RequestAttributes previousAttributes) 事前バインドされた属性(およびその型)を考慮して、指定されたリクエスト(場合によってはレスポンスへの参照も保持している可能性があります)の ServletRequestAttributes をビルドします。- パラメーター:
request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンスpreviousAttributes
- 事前バインドされた RequestAttributes インスタンス(存在する場合)- 戻り値:
- バインドする ServletRequestAttributes、または以前にバインドされたインスタンスを保持する
null
(以前にバインドされていない場合は、バインドされていないか) - 関連事項:
getUsernameForRequest
指定されたリクエストのユーザー名を特定します。デフォルトの実装では、UserPrincipal がある場合はその名前を使用します。サブクラスでオーバーライドできます。
- パラメーター:
request
- 現在の HTTP リクエスト- 戻り値:
- ユーザー名、または
null
(見つからない場合) - 関連事項:
doService
protected abstract void doService(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE サブクラスは、GET、POST、PUT、DELETE の集中コールバックを受信して、リクエスト処理の作業を行うためにこのメソッドを実装する必要があります。契約は、HttpServlet の一般的にオーバーライドされる
doGet
またはdoPost
メソッドの契約と基本的に同じです。このクラスは呼び出しをインターセプトして、例外処理とイベント発行が行われるようにします。
- パラメーター:
request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンス- 例外:
ExceptionSE
- あらゆる種類の処理が失敗した場合- 関連事項: