クラス FrameworkServlet
- 実装されているすべてのインターフェース:
jakarta.servlet.Servlet, jakarta.servlet.ServletConfig, SerializableSE, Aware, ApplicationContextAware, EnvironmentAware, EnvironmentCapable
- 既知の直属サブクラス
DispatcherServlet
このクラスは、次の機能を提供します。
- サーブレットごとに
WebApplicationContextインスタンスを管理します。サーブレットの構成は、サーブレットの名前空間の Bean によって決定されます。 - リクエストが正常に処理されたかどうかに関係なく、リクエスト処理時にイベントを発行します。
サブクラスは、リクエストを処理するために doService(HttpServletRequest, 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 StringSEWebApplicationContext 名前空間のサフィックス。static final StringSEWebApplicationContext の ServletContext 属性のプレフィックス。クラス HttpServletBean から継承されたフィールド
loggerクラス jakarta.servlet.http.HttpServlet から継承されたフィールド
LEGACY_DO_HEADコンストラクターの概要
コンストラクターコンストラクター説明サーブレットの init-params によって提供されるデフォルトと値に基づいて独自の内部 Web アプリケーションコンテキストを作成する新しいFrameworkServletを作成します。FrameworkServlet(WebApplicationContext webApplicationContext) 指定された Web アプリケーションコンテキストで新しいFrameworkServletを作成します。方法の概要
修飾子と型メソッド説明protected voidWebApplicationContext がリフレッシュされる前に、"contextInitializerClasses" サーブレットの init-param で指定されたApplicationContextInitializerインスタンスに委譲します。protected @Nullable LocaleContextbuildLocaleContext(jakarta.servlet.http.HttpServletRequest request) 指定されたリクエストの LocaleContext を構築し、リクエストのプライマリロケールを現在のロケールとして公開します。protected @Nullable ServletRequestAttributesbuildRequestAttributes(jakarta.servlet.http.HttpServletRequest request, @Nullable jakarta.servlet.http.HttpServletResponse response, @Nullable RequestAttributes previousAttributes) 事前バインドされた属性(およびその型)を考慮して、指定されたリクエスト(場合によってはレスポンスへの参照も保持している可能性があります)の ServletRequestAttributes をビルドします。protected voidprotected WebApplicationContextこのサーブレットの WebApplicationContext(デフォルトのXmlWebApplicationContextまたは設定されている場合はcustom context class)をインスタンス化します。protected WebApplicationContextこのサーブレットの WebApplicationContext(デフォルトのXmlWebApplicationContextまたは設定されている場合はcustom context class)をインスタンス化します。voiddestroy()このサーブレットの WebApplicationContext を閉じます。protected final voiddoDelete(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) DELETE リクエストをprocessRequest(HttpServletRequest, HttpServletResponse)に委譲します。protected final voiddoGet(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) GET リクエストを processRequest/doService に委譲します。protected voiddoOptions(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) 必要に応じて、OPTIONS リクエストをprocessRequest(HttpServletRequest, HttpServletResponse)に委譲します。protected final voiddoPost(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) POST リクエストをprocessRequest(HttpServletRequest, HttpServletResponse)に委譲します。protected final voiddoPut(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) PUT リクエストをprocessRequest(HttpServletRequest, HttpServletResponse)に委譲します。protected abstract voiddoService(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) サブクラスは、GET、POST、PUT、DELETE の集中コールバックを受信して、リクエスト処理の作業を行うためにこのメソッドを実装する必要があります。protected voiddoTrace(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) 必要に応じて、TRACE リクエストをprocessRequest(HttpServletRequest, HttpServletResponse)に委譲します。protected @Nullable WebApplicationContextこのサーブレットが使用することになっているWebApplicationContextを取得するために使用する必要がある ServletContext 属性の名前を返します。ClassSE<?> カスタムコンテキストクラスを返します。明示的なコンテキスト構成の場所があれば、それを返します。カスタム WebApplicationContext ID を返します(ある場合)。このサーブレットの名前空間を返します。カスタム名前空間が設定されていない場合は、デフォルトのスキームに戻ります。たとえば、"test" という名前のサーブレットの場合は "test-servlet" になります。このサーブレットの WebApplicationContext の ServletContext 属性名を返します。getUsernameForRequest(jakarta.servlet.http.HttpServletRequest request) 指定されたリクエストのユーザー名を特定します。このサーブレットの WebApplicationContext を返します。protected voidこのメソッドは、Bean プロパティが設定され、WebApplicationContext がロードされた後に呼び出されます。protected final voidHttpServletBeanのオーバーライドされたメソッド。Bean プロパティが設定された後に呼び出されます。protected WebApplicationContextこのサーブレットの WebApplicationContext を初期化して公開します。boolean機密性が高い可能性のあるロギングの場合、DEBUG および TRACE レベルでのリクエストの詳細が許可されます。voidこのサーブレットの WebApplicationContext からリフレッシュイベントを受け取るコールバック。protected voidonRefresh(ApplicationContext context) オーバーライドしてサーブレット固有のリフレッシュ作業を追加できるテンプレートメソッド。protected voidこのサーブレットのコンテキストとしてリフレッシュおよびアクティブ化される前に、指定された WebApplicationContext を後処理します。protected final voidprocessRequest(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) このリクエストを処理し、結果に関係なくイベントを公開します。voidrefresh()このサーブレットのアプリケーションコンテキストと、サーブレットの依存状態をリフレッシュします。protected voidservice(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) PATCH または非標準の HTTP メソッド (WebDAV) を使用してリクエストをインターセプトするために、親クラスの実装をオーバーライドします。voidsetApplicationContext(ApplicationContext applicationContext) ApplicationContextAwareを介して Spring によって呼び出され、現在のアプリケーションコンテキストを挿入します。voidsetContextAttribute(@Nullable StringSE contextAttribute) このサーブレットが使用するはずのWebApplicationContextを取得するために使用する ServletContext 属性の名前を設定します。voidsetContextClass(ClassSE<?> contextClass) カスタムコンテキストクラスを設定します。voidsetContextConfigLocation(@Nullable StringSE contextConfigLocation) 名前空間から構築されたデフォルトの場所に依存するのではなく、コンテキスト構成場所を明示的に設定します。voidsetContextId(@Nullable StringSE contextId) 基になる BeanFactory の直列化 ID として使用されるカスタム WebApplicationContext ID を指定します。voidsetContextInitializerClasses(StringSE contextInitializerClasses) オプションの "contextInitializerClasses" サーブレット init-param ごとに、完全修飾ApplicationContextInitializerクラス名のセットを指定します。voidsetContextInitializers(ApplicationContextInitializer<?> @Nullable... initializers) このFrameworkServletで使用されるアプリケーションコンテキストを初期化するために使用するApplicationContextInitializerインスタンスを指定します。voidsetDispatchOptionsRequest(boolean dispatchOptionsRequest) このサーブレットが HTTP OPTIONS リクエストをdoService(HttpServletRequest, HttpServletResponse)メソッドにディスパッチするかどうかを設定します。voidsetDispatchTraceRequest(boolean dispatchTraceRequest) このサーブレットが HTTP TRACE リクエストをdoService(HttpServletRequest, HttpServletResponse)メソッドにディスパッチするかどうかを設定します。voidsetEnableLoggingRequestDetails(boolean enable) DEBUG レベルのリクエストパラメーターと TRACE レベルのヘッダーをログに記録するかどうか。voidsetNamespace(StringSE namespace) このサーブレットのカスタム名前空間を設定し、デフォルトのコンテキスト構成の場所を構築するために使用します。voidsetPublishContext(boolean publishContext) このサーブレットのコンテキストを ServletContext 属性として公開するかどうかを設定します。これは、Web コンテナー内のすべてのオブジェクトで使用できます。voidsetPublishEvents(boolean publishEvents) このサーブレットが各リクエストの最後に ServletRequestHandledEvent を公開するかどうかを設定します。voidsetThreadContextInheritable(boolean threadContextInheritable) LocaleContext および RequestAttributes を子スレッドの継承可能として公開するかどうかを設定します(InheritableThreadLocalSE を使用)。クラス HttpServletBean から継承されたメソッド
addRequiredProperty, createEnvironment, getEnvironment, getServletName, init, initBeanWrapper, setEnvironmentクラス jakarta.servlet.http.HttpServlet から継承されたメソッド
doHead, doPatch, getLastModified, init, isSensitiveHeader, serviceクラス jakarta.servlet.GenericServlet から継承されたメソッド
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, log, log
フィールドの詳細
DEFAULT_NAMESPACE_SUFFIX
WebApplicationContext 名前空間のサフィックス。このクラスのサーブレットにコンテキストで "test" という名前を付けると、サーブレットが使用する名前空間は "test-servlet" に解決されます。- 関連事項:
DEFAULT_CONTEXT_CLASS
SERVLET_CONTEXT_PREFIX
WebApplicationContext の ServletContext 属性のプレフィックス。補完はサーブレット名です。
コンストラクターの詳細
FrameworkServlet
public FrameworkServlet()サーブレットの init-params によって提供されるデフォルトと値に基づいて独自の内部 Web アプリケーションコンテキストを作成する新しいFrameworkServletを作成します。通常、Servlet 2.5 以前の環境で使用されます。サーブレット登録の唯一のオプションは、引数なしのコンストラクターの使用を必要とするweb.xmlによるものです。setContextConfigLocation(String)(init-param 'contextConfigLocation') を呼び出すと、デフォルトの XmlWebApplicationContext によってロードされる XML ファイルが指定されます。setContextClass(Class)(init-param 'contextClass' ) を呼び出すと、デフォルトのXmlWebApplicationContextがオーバーライドされ、AnnotationConfigWebApplicationContextなどの代替クラスを指定できるようになります。setContextInitializerClasses(String)(init-param 'contextInitializerClasses' ) を呼び出すと、refresh() の前に内部アプリケーションコンテキストをさらに構成するためにどのApplicationContextInitializerクラスを使用する必要があるかが示されます。- 関連事項:
FrameworkServlet
指定された Web アプリケーションコンテキストで新しいFrameworkServletを作成します。このコンストラクターは、ServletContext.addServlet(String, String)API を介してインスタンスベースのサーブレット登録が可能なサーブレット環境で役立ちます。このコンストラクターを使用すると、次のプロパティ / init-params が無視されます:
setContextClass(Class)/'contextClass'setContextConfigLocation(String)/'contextConfigLocation'setContextAttribute(String)/'contextAttribute'setNamespace(String)/' 名前空間 '
指定された Web アプリケーションコンテキストは、まだリフレッシュされている場合とされていない場合があります。(a)
ConfigurableWebApplicationContextの実装であり、(b)まだリフレッシュされていない場合(推奨されるアプローチ)、次のようになります。- 指定されたコンテキストにまだ parent がない場合、ルートアプリケーションコンテキストが親として設定されます。
- 指定されたコンテキストにまだ id が割り当てられていない場合、1 つが割り当てられます
ServletContextおよびServletConfigオブジェクトは、アプリケーションコンテキストに委譲されます。postProcessWebApplicationContext(ConfigurableWebApplicationContext)が呼び出されます- "contextInitializerClasses" 初期化パラメーターまたは
setContextInitializers(ApplicationContextInitializer...)プロパティを通じて指定されたApplicationContextInitializersが適用されます。 refresh()が呼び出されます
ConfigurableWebApplicationContextを実装していない場合、ユーザーが特定のニーズに応じてこれらのアクションを実行した(または実行しない)という仮定では、上記のいずれも発生しません。使用例については、
WebApplicationInitializerを参照してください。- パラメーター:
webApplicationContext- 使用するコンテキスト- 関連事項:
メソッドの詳細
setContextAttribute
このサーブレットが使用するはずのWebApplicationContextを取得するために使用する ServletContext 属性の名前を設定します。getContextAttribute
このサーブレットが使用することになっているWebApplicationContextを取得するために使用する必要がある ServletContext 属性の名前を返します。setContextClass
カスタムコンテキストクラスを設定します。このクラスはWebApplicationContext型である必要があります。デフォルトの FrameworkServlet 実装を使用する場合、コンテキストクラスは
ConfigurableWebApplicationContextインターフェースも実装する必要があります。- 関連事項:
getContextClass
カスタムコンテキストクラスを返します。setContextId
getContextId
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 を子スレッドの継承可能として公開するかどうかを設定します(InheritableThreadLocalSE を使用)。生成されたバックグラウンドスレッドへの副作用を回避するため、デフォルトは "false" です。これを "true" に切り替えて、リクエストの処理中に生成され、このリクエストにのみ使用される(つまり、スレッドを再利用せずに、最初のタスクの後で終了する)カスタムの子スレッドの継承を有効にします。
警告 : 必要に応じて新しいスレッドを追加する可能性があるように構成されているスレッドプール (たとえば、JDK
ThreadPoolExecutorSE) にアクセスする場合は、子スレッドに継承を使用しないでください。継承を使用すると、継承されたコンテキストがそのようなプールされたスレッドに公開されるためです。setDispatchOptionsRequest
public void setDispatchOptionsRequest(boolean dispatchOptionsRequest) このサーブレットが HTTP OPTIONS リクエストをdoService(HttpServletRequest, HttpServletResponse)メソッドにディスパッチするかどうかを設定します。FrameworkServletのデフォルトは "false" で、HttpServletのデフォルトの動作(つまり、OPTIONS リクエストへのレスポンスとしてすべての標準 HTTP リクエストメソッドを列挙する)が適用されます。ただし、4.3 以降、DispatcherServletは OPTIONS を組み込んでいるため、このプロパティをデフォルトで "true" に設定することに注意してください。他の HTTP リクエストと同様に、OPTIONS リクエストが通常のディスパッチチェーンを経由することを希望する場合は、このフラグをオンにします。これは通常、コントローラーがそれらのリクエストを受信することを意味します。それらのエンドポイントが実際に OPTIONS リクエストを処理できることを確認してください。
コントローラーが(OPTIONS レスポンスに必要な)「許可」ヘッダーを設定しなかった場合でも、HttpServlet のデフォルトの OPTIONS 処理が適用されます。
setDispatchTraceRequest
public void setDispatchTraceRequest(boolean dispatchTraceRequest) このサーブレットが HTTP TRACE リクエストをdoService(HttpServletRequest, HttpServletResponse)メソッドにディスパッチするかどうかを設定します。デフォルトは "false" で、
HttpServletのデフォルトの動作が適用されます(つまり、受信したメッセージをクライアントに反映します)。他の 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
protected final void initServletBean() throws jakarta.servlet.ServletExceptionHttpServletBeanのオーバーライドされたメソッド。Bean プロパティが設定された後に呼び出されます。このサーブレットの WebApplicationContext を作成します。- オーバーライド:
- クラス
HttpServletBeanのinitServletBean - 例外:
jakarta.servlet.ServletException- サブクラスの初期化が失敗した場合
initWebApplicationContext
このサーブレットの WebApplicationContext を初期化して公開します。コンテキストを実際に作成するための
createWebApplicationContext(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(ConfigurableWebApplicationContext)も参照してください。これは(エンドユーザーではなく)サブクラスがアプリケーションコンテキストを変更できるように設計されており、このメソッドの直前に呼び出されます。- パラメーター:
wac- 設定された WebApplicationContext (まだリフレッシュされていません)- 関連事項:
getServletContextAttributeName
このサーブレットの WebApplicationContext の ServletContext 属性名を返します。デフォルトの実装は
SERVLET_CONTEXT_PREFIX + servlet nameを返します。- 関連事項:
getWebApplicationContext
このサーブレットの WebApplicationContext を返します。initFrameworkServlet
protected void initFrameworkServlet() throws jakarta.servlet.ServletExceptionこのメソッドは、Bean プロパティが設定され、WebApplicationContext がロードされた後に呼び出されます。デフォルトの実装は空です。サブクラスはこのメソッドをオーバーライドして、必要な初期化を実行できます。- 例外:
jakarta.servlet.ServletException- 初期化例外の場合
refresh
public void refresh()このサーブレットのアプリケーションコンテキストと、サーブレットの依存状態をリフレッシュします。- 関連事項:
onApplicationEvent
このサーブレットの WebApplicationContext からリフレッシュイベントを受け取るコールバック。デフォルトの実装は
onRefresh(ApplicationContext)を呼び出し、このサーブレットのコンテキスト依存状態のリフレッシュをトリガーします。- パラメーター:
event- 受信 ApplicationContext イベント
onRefresh
サーブレット固有のリフレッシュ作業を追加するためにオーバーライドできるテンプレートメソッド。コンテキストのリフレッシュが成功した後に呼び出されます。この実装は空です。
- パラメーター:
context- 現在の WebApplicationContext- 関連事項:
destroy
public void destroy()このサーブレットの WebApplicationContext を閉じます。- 次で指定:
- インターフェース
jakarta.servlet.Servletのdestroy - オーバーライド:
- クラス
jakarta.servlet.GenericServletのdestroy - 関連事項:
service
protected void service(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws jakarta.servlet.ServletException, IOExceptionSE PATCH または非標準の HTTP メソッド (WebDAV) を使用してリクエストをインターセプトするために、親クラスの実装をオーバーライドします。- オーバーライド:
- クラス
jakarta.servlet.http.HttpServletのservice - 例外:
jakarta.servlet.ServletExceptionIOExceptionSE
doGet
protected final void doGet(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws jakarta.servlet.ServletException, IOExceptionSE GET リクエストを processRequest/doService に委譲します。また、コンテンツの長さだけをキャプチャーする
NoBodyResponseを使用して、HttpServlet のdoHeadのデフォルト実装によっても呼び出されます。- オーバーライド:
- クラス
jakarta.servlet.http.HttpServletのdoGet - 例外:
jakarta.servlet.ServletExceptionIOExceptionSE- 関連事項:
doPost
protected final void doPost(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws jakarta.servlet.ServletException, IOExceptionSE POST リクエストをprocessRequest(HttpServletRequest, HttpServletResponse)に委譲します。- オーバーライド:
- クラス
jakarta.servlet.http.HttpServletのdoPost - 例外:
jakarta.servlet.ServletExceptionIOExceptionSE- 関連事項:
doPut
protected final void doPut(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws jakarta.servlet.ServletException, IOExceptionSE PUT リクエストをprocessRequest(HttpServletRequest, HttpServletResponse)に委譲します。- オーバーライド:
- クラス
jakarta.servlet.http.HttpServletのdoPut - 例外:
jakarta.servlet.ServletExceptionIOExceptionSE- 関連事項:
doDelete
protected final void doDelete(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws jakarta.servlet.ServletException, IOExceptionSE DELETE リクエストをprocessRequest(HttpServletRequest, HttpServletResponse)に委譲します。- オーバーライド:
- クラス
jakarta.servlet.http.HttpServletのdoDelete - 例外:
jakarta.servlet.ServletExceptionIOExceptionSE- 関連事項:
doOptions
protected void doOptions(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws jakarta.servlet.ServletException, IOExceptionSE 必要に応じて、OPTIONS リクエストをprocessRequest(HttpServletRequest, HttpServletResponse)に委譲します。それ以外の場合、およびディスパッチ後も "Allow" ヘッダーが設定されていない場合にも、HttpServlet の標準 OPTIONS 処理を適用します。
- オーバーライド:
- クラス
jakarta.servlet.http.HttpServletのdoOptions - 例外:
jakarta.servlet.ServletExceptionIOExceptionSE- 関連事項:
doTrace
protected void doTrace(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws jakarta.servlet.ServletException, IOExceptionSE 必要に応じて、TRACE リクエストをprocessRequest(HttpServletRequest, HttpServletResponse)に委譲します。それ以外の場合は、HttpServlet の標準 TRACE 処理を適用します。
- オーバーライド:
- クラス
jakarta.servlet.http.HttpServletのdoTrace - 例外:
jakarta.servlet.ServletExceptionIOExceptionSE- 関連事項:
processRequest
protected final void processRequest(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws jakarta.servlet.ServletException, IOExceptionSE このリクエストを処理し、結果に関係なくイベントを公開します。実際のイベント処理は、抽象
doService(HttpServletRequest, HttpServletResponse)テンプレートメソッドによって実行されます。- 例外:
jakarta.servlet.ServletExceptionIOExceptionSE
buildLocaleContext
protected @Nullable LocaleContext buildLocaleContext(jakarta.servlet.http.HttpServletRequest request) 指定されたリクエストの LocaleContext を構築し、リクエストのプライマリロケールを現在のロケールとして公開します。- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- 対応する LocaleContext、またはバインドするものがない場合は
null - 関連事項:
buildRequestAttributes
protected @Nullable ServletRequestAttributes buildRequestAttributes(jakarta.servlet.http.HttpServletRequest request, @Nullable jakarta.servlet.http.HttpServletResponse response, @Nullable RequestAttributes previousAttributes) 事前バインドされた属性(およびその型)を考慮して、指定されたリクエスト(場合によってはレスポンスへの参照も保持している可能性があります)の ServletRequestAttributes をビルドします。- パラメーター:
request- 現在の HTTP リクエストresponse- 現在の HTTP レスポンスpreviousAttributes- 事前バインドされた RequestAttributes インスタンス(存在する場合)- 戻り値:
- バインドする ServletRequestAttributes、または以前にバインドされたインスタンスを保持する
null(以前にバインドされていない場合は、バインドされていないか) - 関連事項:
getUsernameForRequest
doService
protected abstract void doService(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws ExceptionSE サブクラスは、GET、POST、PUT、DELETE の集中コールバックを受信して、リクエスト処理の作業を行うためにこのメソッドを実装する必要があります。契約は、HttpServlet の一般的にオーバーライドされる
doGetまたはdoPostメソッドの契約と基本的に同じです。このクラスは呼び出しをインターセプトして、例外処理とイベント発行が行われるようにします。
- パラメーター:
request- 現在の HTTP リクエストresponse- 現在の HTTP レスポンス- 例外:
ExceptionSE- あらゆる種類の処理が失敗した場合- 関連事項: