クラス FrameworkServlet

java.lang.ObjectSE
jakarta.servlet.GenericServlet
jakarta.servlet.http.HttpServlet
org.springframework.web.servlet.HttpServletBean
org.springframework.web.servlet.FrameworkServlet
実装されているすべてのインターフェース:
jakarta.servlet.Servlet, jakarta.servlet.ServletConfig, SerializableSE, Aware, ApplicationContextAware, EnvironmentAware, EnvironmentCapable
既知の直属サブクラス
DispatcherServlet

public abstract class FrameworkServlet extends HttpServletBean implements ApplicationContextAware
Spring の Web フレームワークのベースサーブレット。JavaBean ベースの全体的なソリューションで、Spring アプリケーションコンテキストとの統合を提供します。

このクラスは、次の機能を提供します。

  • サーブレットごとに 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
関連事項:
  • フィールドの詳細

    • DEFAULT_NAMESPACE_SUFFIX

      public static final StringSE DEFAULT_NAMESPACE_SUFFIX
      WebApplicationContext 名前空間のサフィックス。このクラスのサーブレットにコンテキストで "test" という名前を付けると、サーブレットが使用する名前空間は "test-servlet" に解決されます。
      関連事項:
    • DEFAULT_CONTEXT_CLASS

      public static final ClassSE<?> DEFAULT_CONTEXT_CLASS
      FrameworkServlet のデフォルトのコンテキストクラス。
      関連事項:
    • SERVLET_CONTEXT_PREFIX

      public static final StringSE 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

      public FrameworkServlet(WebApplicationContext webApplicationContext)
      指定された Web アプリケーションコンテキストで新しい FrameworkServlet を作成します。このコンストラクターは、ServletContext.addServlet(String, String) API を介してインスタンスベースのサーブレット登録が可能なサーブレット環境で役立ちます。

      このコンストラクターを使用すると、次のプロパティ / init-params が無視されます:

      指定された Web アプリケーションコンテキストは、まだリフレッシュされている場合とされていない場合があります。(a)ConfigurableWebApplicationContext の実装であり、(b)まだリフレッシュされていない場合(推奨されるアプローチ)、次のようになります。

      コンテキストがすでにリフレッシュされているか、ConfigurableWebApplicationContext を実装していない場合、ユーザーが特定のニーズに応じてこれらのアクションを実行した(または実行しない)という仮定では、上記のいずれも発生しません。

      使用例については、WebApplicationInitializer を参照してください。

      パラメーター:
      webApplicationContext - 使用するコンテキスト
      関連事項:
  • メソッドの詳細

    • setContextAttribute

      public void setContextAttribute(@Nullable StringSE contextAttribute)
      このサーブレットが使用するはずの WebApplicationContext を取得するために使用する ServletContext 属性の名前を設定します。
    • getContextAttribute

      public @Nullable StringSE getContextAttribute()
      このサーブレットが使用することになっている WebApplicationContext を取得するために使用する必要がある ServletContext 属性の名前を返します。
    • setContextClass

      public void setContextClass(ClassSE<?> contextClass)
      カスタムコンテキストクラスを設定します。このクラスは WebApplicationContext 型である必要があります。

      デフォルトの FrameworkServlet 実装を使用する場合、コンテキストクラスは ConfigurableWebApplicationContext インターフェースも実装する必要があります。

      関連事項:
    • getContextClass

      public ClassSE<?> getContextClass()
      カスタムコンテキストクラスを返します。
    • setContextId

      public void setContextId(@Nullable StringSE contextId)
      基になる BeanFactory の直列化 ID として使用されるカスタム WebApplicationContext ID を指定します。
    • getContextId

      public @Nullable StringSE getContextId()
      カスタム WebApplicationContext ID を返します(ある場合)。
    • setNamespace

      public void setNamespace(StringSE namespace)
      このサーブレットのカスタム名前空間を設定し、デフォルトのコンテキスト構成の場所を構築するために使用します。
    • getNamespace

      public StringSE getNamespace()
      このサーブレットの名前空間を返します。カスタム名前空間が設定されていない場合は、デフォルトのスキームに戻ります。たとえば、"test" という名前のサーブレットの場合は "test-servlet" になります。
    • setContextConfigLocation

      public void setContextConfigLocation(@Nullable StringSE contextConfigLocation)
      名前空間から構築されたデフォルトの場所に依存するのではなく、コンテキスト構成場所を明示的に設定します。この場所の文字列は、任意の数のコンマとスペースで区切られた複数の場所で構成できます。
    • getContextConfigLocation

      public @Nullable StringSE getContextConfigLocation()
      明示的なコンテキスト構成の場所があれば、それを返します。
    • setContextInitializers

      public void setContextInitializers(ApplicationContextInitializer<?> @Nullable ... initializers)
      この FrameworkServlet で使用されるアプリケーションコンテキストを初期化するために使用する ApplicationContextInitializer インスタンスを指定します。
      関連事項:
    • setContextInitializerClasses

      public void setContextInitializerClasses(StringSE contextInitializerClasses)
      オプションの "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

      public void setApplicationContext(ApplicationContext applicationContext)
      現在のアプリケーションコンテキストを挿入するために、ApplicationContextAware を介して Spring によって呼び出されます。この方法により、FrameworkServlets を bootstrapped コンテキストではなく、finding ではなく既存の WebApplicationContext 内の Spring Bean として登録できます。

      主に埋め込まれたサーブレットコンテナーでの使用をサポートするために追加されました。

      次で指定:
      インターフェース ApplicationContextAwaresetApplicationContext 
      パラメーター:
      applicationContext - このオブジェクトによって使用される ApplicationContext オブジェクト
      導入:
      4.0
      関連事項:
    • initServletBean

      protected final void initServletBean() throws jakarta.servlet.ServletException
      HttpServletBean のオーバーライドされたメソッド。Bean プロパティが設定された後に呼び出されます。このサーブレットの WebApplicationContext を作成します。
      オーバーライド:
      クラス HttpServletBeaninitServletBean 
      例外:
      jakarta.servlet.ServletException - サブクラスの初期化が失敗した場合
    • initWebApplicationContext

      protected WebApplicationContext initWebApplicationContext()
      このサーブレットの WebApplicationContext を初期化して公開します。

      コンテキストを実際に作成するための createWebApplicationContext(ApplicationContext) へのデリゲート。サブクラスでオーバーライドできます。

      戻り値:
      WebApplicationContext インスタンス
      関連事項:
    • findWebApplicationContext

      protected @Nullable WebApplicationContext findWebApplicationContext()
      configured name を使用して、ServletContext 属性から WebApplicationContext を取得します。このサーブレットが初期化(または起動)される前に、WebApplicationContext がすでにロードされ、ServletContext に格納されている必要があります。

      サブクラスはこのメソッドをオーバーライドして、別の WebApplicationContext 取得戦略を提供できます。

      戻り値:
      このサーブレットの WebApplicationContext、または見つからない場合は null 
      関連事項:
    • createWebApplicationContext

      protected WebApplicationContext createWebApplicationContext(@Nullable ApplicationContext parent)
      このサーブレットの WebApplicationContext(デフォルトの XmlWebApplicationContext または設定されている場合は custom context class)をインスタンス化します。

      この実装は、カスタムコンテキストが ConfigurableWebApplicationContext インターフェースを実装することを期待しています。サブクラスでオーバーライドできます。

      このサーブレットインスタンスを、作成されたコンテキストでアプリケーションリスナーとして登録し(callback をトリガーするため)、コンテキストインスタンスを返す前に ConfigurableApplicationContext.refresh() を呼び出すことを忘れないでください。

      パラメーター:
      parent - 使用する親 ApplicationContext、ない場合は null 
      戻り値:
      このサーブレットの WebApplicationContext
      関連事項:
    • configureAndRefreshWebApplicationContext

      protected void configureAndRefreshWebApplicationContext(ConfigurableWebApplicationContext wac)
    • createWebApplicationContext

      protected WebApplicationContext createWebApplicationContext(@Nullable WebApplicationContext parent)
      このサーブレットの WebApplicationContext をインスタンス化します(デフォルトの XmlWebApplicationContext または custom context class(設定されている場合))。#createWebApplicationContext(ApplicationContext)にデリゲートします。
      パラメーター:
      parent - 使用する親 WebApplicationContext、ない場合は null 
      戻り値:
      このサーブレットの WebApplicationContext
      関連事項:
    • postProcessWebApplicationContext

      protected void postProcessWebApplicationContext(ConfigurableWebApplicationContext wac)
      このサーブレットのコンテキストとしてリフレッシュおよびアクティブ化される前に、指定された WebApplicationContext を後処理します。

      デフォルトの実装は空です。このメソッドが戻った後、refresh() が自動的に呼び出されます。

      このメソッドは、サブクラスがアプリケーションコンテキストを変更できるように設計されていますが、initWebApplicationContext() は、エンドユーザーが ApplicationContextInitializers を使用してコンテキストを変更できるように設計されていることに注意してください。

      パラメーター:
      wac - 設定された WebApplicationContext (まだリフレッシュされていません)
      関連事項:
    • applyInitializers

      protected void applyInitializers(ConfigurableApplicationContext wac)
      WebApplicationContext がリフレッシュされる前に、"contextInitializerClasses" サーブレットの init-param で指定された ApplicationContextInitializer インスタンスに委譲します。

      postProcessWebApplicationContext(ConfigurableWebApplicationContext) も参照してください。これは(エンドユーザーではなく)サブクラスがアプリケーションコンテキストを変更できるように設計されており、このメソッドの直前に呼び出されます。

      パラメーター:
      wac - 設定された WebApplicationContext (まだリフレッシュされていません)
      関連事項:
    • getServletContextAttributeName

      public StringSE getServletContextAttributeName()
      このサーブレットの WebApplicationContext の ServletContext 属性名を返します。

      デフォルトの実装は SERVLET_CONTEXT_PREFIX + servlet name を返します。

      関連事項:
    • getWebApplicationContext

      public final @Nullable WebApplicationContext getWebApplicationContext()
      このサーブレットの WebApplicationContext を返します。
    • initFrameworkServlet

      protected void initFrameworkServlet() throws jakarta.servlet.ServletException
      このメソッドは、Bean プロパティが設定され、WebApplicationContext がロードされた後に呼び出されます。デフォルトの実装は空です。サブクラスはこのメソッドをオーバーライドして、必要な初期化を実行できます。
      例外:
      jakarta.servlet.ServletException - 初期化例外の場合
    • refresh

      public void refresh()
      このサーブレットのアプリケーションコンテキストと、サーブレットの依存状態をリフレッシュします。
      関連事項:
    • onApplicationEvent

      public void onApplicationEvent(ContextRefreshedEvent event)
      このサーブレットの WebApplicationContext からリフレッシュイベントを受け取るコールバック。

      デフォルトの実装は onRefresh(ApplicationContext) を呼び出し、このサーブレットのコンテキスト依存状態のリフレッシュをトリガーします。

      パラメーター:
      event - 受信 ApplicationContext イベント
    • onRefresh

      protected void onRefresh(ApplicationContext context)
      サーブレット固有のリフレッシュ作業を追加するためにオーバーライドできるテンプレートメソッド。コンテキストのリフレッシュが成功した後に呼び出されます。

      この実装は空です。

      パラメーター:
      context - 現在の WebApplicationContext
      関連事項:
    • destroy

      public void destroy()
      このサーブレットの WebApplicationContext を閉じます。
      次で指定:
      インターフェース jakarta.servlet.Servletdestroy 
      オーバーライド:
      クラス jakarta.servlet.GenericServletdestroy 
      関連事項:
    • 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.HttpServletservice 
      例外:
      jakarta.servlet.ServletException
      IOExceptionSE
    • 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.HttpServletdoGet 
      例外:
      jakarta.servlet.ServletException
      IOExceptionSE
      関連事項:
    • 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.HttpServletdoPost 
      例外:
      jakarta.servlet.ServletException
      IOExceptionSE
      関連事項:
    • 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.HttpServletdoPut 
      例外:
      jakarta.servlet.ServletException
      IOExceptionSE
      関連事項:
    • 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.HttpServletdoDelete 
      例外:
      jakarta.servlet.ServletException
      IOExceptionSE
      関連事項:
    • 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.HttpServletdoOptions 
      例外:
      jakarta.servlet.ServletException
      IOExceptionSE
      関連事項:
    • 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.HttpServletdoTrace 
      例外:
      jakarta.servlet.ServletException
      IOExceptionSE
      関連事項:
    • 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.ServletException
      IOExceptionSE
    • 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

      protected @Nullable StringSE getUsernameForRequest(jakarta.servlet.http.HttpServletRequest request)
      指定されたリクエストのユーザー名を特定します。

      デフォルトの実装では、UserPrincipal がある場合はその名前を使用します。サブクラスでオーバーライドできます。

      パラメーター:
      request - 現在の HTTP リクエスト
      戻り値:
      ユーザー名、または null (見つからない場合)
      関連事項:
      • HttpServletRequest.getUserPrincipal()
    • 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 - あらゆる種類の処理が失敗した場合
      関連事項:
      • HttpServlet.doGet(HttpServletRequest, HttpServletResponse)
      • HttpServlet.doPost(HttpServletRequest, HttpServletResponse)