パッケージ jakarta.servlet

インターフェース ServletRequest

すべての既知のサブインターフェース:
HttpServletRequest
すべての既知の実装クラス:
HttpServletRequestWrapperServletRequestWrapper

public interface ServletRequest
クライアントリクエスト情報をサーブレットに提供するオブジェクトを定義します。サーブレットコンテナーは ServletRequest オブジェクトを作成し、それを引数としてサーブレットの service メソッドに渡します。

ServletRequest オブジェクトは、パラメーター名と値、属性、入力ストリームなどのデータを提供します。ServletRequest を継承するインターフェースは、追加のプロトコル固有のデータを提供できます(たとえば、HTTP データは HttpServletRequest によって提供されます)。

作成者:
Various
関連事項:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    このリクエストで startAsync() または startAsync(ServletRequest,ServletResponse) の最新の呼び出しによって作成または再初期化された AsyncContext を取得します。
    指定された名前の属性が存在しない場合、名前付き属性の値を Objectnull として返します。
    このリクエストで使用可能な属性の名前を含む Enumeration を返します。
    このリクエストの本文で使用される文字エンコーディングの名前を返します。
    int
    リクエスト本文の長さをバイト単位で返し、入力ストリームで使用可能にします。長さが不明または Integer.MAX_VALUE より大きい場合は -1 を返します。
    long
    リクエスト本体の長さをバイト単位で返し、入力ストリームで使用可能にします。長さが不明の場合は -1
    リクエストの本文の MIME 型を返します。型が不明な場合は null を返します。
    このリクエストのディスパッチャー型を取得します。
    ServletInputStream を使用して、リクエストの本文をバイナリデータとして取得します。
    リクエストを受信したインターフェースを表すインターネットプロトコル (IP) アドレスを返します。
    Accept-Language ヘッダーに基づいて、クライアントがコンテンツを受け入れる優先 Locale を返します。
    Locale オブジェクトの Enumeration を返します。優先ロケールで始まる降順で、Accept-Language ヘッダーに基づいてクライアントが受け入れ可能なロケールを示します。
    getLocalAddr() によって返されるアドレスの完全修飾名を返します。
    int
    リクエストを受信したインターフェースを表すインターネットプロトコル (IP) ポート番号を返します。
    リクエストパラメーターの値を String として返します。パラメーターが存在しない場合は null を返します。
    このリクエストのパラメーターの java.util.Map を返します。
    このリクエストに含まれるパラメーターの名前を含む String オブジェクトの Enumeration を返します。
    指定されたリクエストパラメーターが持つすべての値を含む String オブジェクトの配列、またはパラメーターが存在しない場合は null を返します。
    リクエストが使用するプロトコルの名前とバージョンを、protocol/majorVersion.minorVersion の形式で返します (例: HTTP/1.1)。
    使用中のプロトコルで定義されているように、このリクエストのリクエスト識別子を取得します。
    BufferedReader を使用して、リクエストの本文を文字データとして取得します。
    リクエストを受信した接続の リモート側のインターネットプロトコル (IP) を返します。
    getRemoteAddr() によって返されるアドレスの完全修飾名を返します。
    int
    リクエストを受信した接続の リモート側のインターネットプロトコル (IP) ソースポートを返します。
    指定されたパスにあるリソースのラッパーとして機能する RequestDispatcher オブジェクトを返します。
    このリクエストの一意の (サーブレットコンテナーの有効期間内の) 識別子文字列を取得します。
    このリクエストを行うために使用されたスキームの名前を返します(例: httphttpsftp)。
    リクエストが送信されたサーバーのホスト名を返します。
    int
    リクエストが送信されたポート番号を返します。
    このリクエストで使用されているサーブレットコンテナーへのネットワーク接続の詳細を取得します。
    この ServletRequest が最後にディスパッチされたサーブレットコンテキストを取得します。
    boolean
    このリクエストが非同期モードになっているかどうかを確認します。
    boolean
    このリクエストが非同期操作をサポートしているかどうかを確認します。
    boolean
    このリクエストが HTTPS などの安全なチャネルを使用して行われたかどうかを示すブール値を返します。
    void
    このリクエストから属性を削除します。
    void
    このリクエストに属性を保存します。
    void
    このリクエストの本文で使用される文字エンコーディングの名前をオーバーライドします。
    default void
    このリクエストの本文で使用される文字エンコーディングをオーバーライドします。
    このリクエストを非同期モードにし、その AsyncContext を元の(ラップされていない)ServletRequest および ServletResponse オブジェクトで初期化します。
    startAsync(ServletRequest servletRequest, ServletResponse servletResponse)
    このリクエストを非同期モードにし、指定されたリクエストオブジェクトとレスポンスオブジェクトで AsyncContext を初期化します。
  • メソッドの詳細

    • getAttribute

      ObjectSE getAttribute(StringSE name)
      指定された名前の属性が存在しない場合、名前付き属性の値を Objectnull として返します。

      属性は 2 つの方法で設定できます。サーブレットコンテナーは、リクエストに関するカスタム情報を利用できるように属性を設定できます。例: HTTPS を使用して行われたリクエストの場合、属性 jakarta.servlet.request.X509Certificate を使用して、クライアントの証明書に関する情報を取得できます。属性は、setAttribute(java.lang.String, java.lang.Object) を使用してプログラムで設定することもできます。これにより、RequestDispatcher 呼び出しの前に情報をリクエストに埋め込むことができます。

      属性名はパッケージ名と同じ規則に従う必要があります。Jakarta Servlet 仕様では、jakarta.* に一致する名前が予約されています。

      パラメーター:
      name - 属性の名前を指定する String 
      戻り値:
      属性の値を含む Object、または属性が存在しない場合は null 
    • getAttributeNames

      EnumerationSE<StringSE> getAttributeNames()
      このリクエストで使用可能な属性の名前を含む Enumeration を返します。リクエストに使用可能な属性がない場合、このメソッドは空の Enumeration を返します。
      戻り値:
      リクエストの属性の名前を含む文字列の Enumeration 
    • getCharacterEncoding

      StringSE getCharacterEncoding()
      このリクエストの本文で使用される文字エンコーディングの名前を返します。このメソッドは、文字エンコーディングをエンコードするリクエストが指定されていない場合、null を返します。リクエストの文字エンコーディングを指定するために、優先度の降順で、リクエストごと、Web アプリごと(ServletContext.setRequestCharacterEncoding(java.lang.String)、デプロイ記述子を使用)、コンテナーごと(ベンダー固有の構成を使用して、そのコンテナーにデプロイされたすべての Web アプリケーション)が指定されます。
      戻り値:
      文字エンコードの名前を含む String、またはリクエストで文字エンコードが指定されていない場合は null 
    • setCharacterEncoding

      void setCharacterEncoding(StringSE encoding) throws UnsupportedEncodingExceptionSE
      このリクエストの本文で使用される文字エンコーディングの名前をオーバーライドします。このメソッドは、リクエストパラメーターの読み取りまたは getReader() を使用した入力の読み取りの前に呼び出す必要があります。それ以外の場合、効果はありません。
      パラメーター:
      encoding - 文字エンコードの名前を含む String
      例外:
      UnsupportedEncodingExceptionSE - この ServletRequest がまだ文字エンコーディングを設定できる状態にあるが、指定されたエンコーディングが無効な場合
    • setCharacterEncoding

      default void setCharacterEncoding(CharsetSE encoding)
      このリクエストの本文で使用される文字エンコーディングをオーバーライドします。このメソッドは、getReader() を使用してリクエストパラメーターを読み取る前、または入力を読み取る前に呼び出す必要があります。それ以外の場合は効果がありません。

      実装では、このデフォルトのメソッドをオーバーライドして、より効率的な実装を提供することを強くお勧めします。

      パラメーター:
      encoding - 文字エンコーディングを表す Charset
      導入:
      Servlet 6.1
    • getContentLength

      int getContentLength()
      リクエスト本文の長さをバイト単位で返し、入力ストリームで使用可能にします。長さが不明または Integer.MAX_VALUE より大きい場合は -1 を返します。
      戻り値:
      リクエストボディの長さを含む整数。長さが不明の場合、または Integer.MAX_VALUE より大きい場合は -1。
    • getContentLengthLong

      long getContentLengthLong()
      リクエスト本体の長さをバイト単位で返し、入力ストリームで使用可能にします。長さが不明の場合は -1
      戻り値:
      リクエスト本体の長さを含む long、または長さが不明な場合は -1L
      導入:
      Servlet 3.1
    • getContentType

      StringSE getContentType()
      リクエストの本文の MIME 型を返します。型が不明な場合は null を返します。
      戻り値:
      リクエストの MIME 型の名前を含む String、または型が不明の場合は null
    • getInputStream

      ServletInputStream getInputStream() throws IOExceptionSE
      ServletInputStream を使用して、リクエストの本文をバイナリデータとして取得します。このメソッドまたは getReader() のいずれかを呼び出して、本体を読み取ることができますが、両方はできません。
      戻り値:
      リクエストの本文を含む ServletInputStream オブジェクト
      例外:
      IllegalStateExceptionSE - getReader() メソッドがこのリクエストに対してすでに呼び出されている場合
      IOExceptionSE - 入力または出力の例外が発生した場合
    • getParameter

      StringSE getParameter(StringSE name)
      リクエストパラメーターの値を String として返します。パラメーターが存在しない場合は null を返します。リクエストパラメーターは、リクエストとともに送信される追加情報です。HTTP サーブレットの場合、パラメーターはクエリ文字列または投稿されたフォームデータに含まれます。

      パラメーターに値が 1 つしかないことが確実な場合にのみ、このメソッドを使用してください。パラメーターに複数の値がある場合は、getParameterValues(java.lang.String) を使用します。

      このメソッドを複数値パラメーターで使用する場合、返される値は getParameterValues によって返される配列の最初の値と等しくなります。

      HTTP POST リクエストで発生するなど、パラメーターデータがリクエスト本文で送信された場合、getInputStream() または getReader() を介して直接本文を読み取ると、このメソッドの実行が妨げられる可能性があります。

      まだ解析されていない場合、このメソッドを呼び出すと、クエリ文字列、リクエスト本文のコンテンツ型が application/x-www-form-urlencoded である POST されたフォームデータ、およびリクエスト本文のコンテンツ型が multipart/form-data でサーブレットが MultipartConfig で構成されている POST されたフォームデータの解析がトリガーされます。アノテーションまたは デプロイ記述子の multipart-config 要素。

      パラメーター:
      name - パラメーターの名前を指定する String 
      戻り値:
      パラメーターの単一の値を表す String 
      例外:
      IllegalStateExceptionSE - パラメーターの解析がトリガーされ、パラメーターの解析中に次のような問題が発生した場合: 無効なパーセント (%nn) エンコーディング。指定された文字セットのバイトシーケンスが無効です。リクエスト本文の読み取り時の I/O エラー。パラメーター解析に関連するコンテナー定義の制限をトリガーします。コンテナーは、例外をスローしないなどの代替方法でこれらのエラーの一部またはすべてを処理するためのコンテナー固有のオプションを提供する場合があります。
      関連事項:
    • getParameterNames

      EnumerationSE<StringSE> getParameterNames()
      このリクエストに含まれるパラメーターの名前を含む String オブジェクトの Enumeration を返します。リクエストにパラメーターがない場合、メソッドは空の Enumeration を返します。

      まだ解析されていない場合、このメソッドを呼び出すと、クエリ文字列、リクエスト本文のコンテンツ型が application/x-www-form-urlencoded である POST されたフォームデータ、およびリクエスト本文のコンテンツ型が multipart/form-data でサーブレットが MultipartConfig で構成されている POST されたフォームデータの解析がトリガーされます。アノテーションまたは デプロイ記述子の multipart-config 要素。

      戻り値:
      String オブジェクトの Enumeration。各 String にはリクエストパラメーターの名前が含まれます。またはリクエストにパラメーターがない場合は空の Enumeration 
      例外:
      IllegalStateExceptionSE - パラメーターの解析がトリガーされ、パラメーターの解析中に次のような問題が発生した場合: 無効なパーセント (%nn) エンコーディング。指定された文字セットのバイトシーケンスが無効です。リクエスト本文の読み取り時の I/O エラー。パラメーター解析に関連するコンテナー定義の制限をトリガーします。コンテナーは、例外をスローしないなどの代替方法でこれらのエラーの一部またはすべてを処理するためのコンテナー固有のオプションを提供する場合があります。
    • getParameterValues

      StringSE[] getParameterValues(StringSE name)
      指定されたリクエストパラメーターが持つすべての値を含む String オブジェクトの配列、またはパラメーターが存在しない場合は null を返します。

      パラメーターの値が 1 つの場合、配列の長さは 1 です。

      まだ解析されていない場合、このメソッドを呼び出すと、クエリ文字列、リクエスト本文のコンテンツ型が application/x-www-form-urlencoded である POST されたフォームデータ、およびリクエスト本文のコンテンツ型が multipart/form-data でサーブレットが MultipartConfig で構成されている POST されたフォームデータの解析がトリガーされます。アノテーションまたは デプロイ記述子の multipart-config 要素。

      パラメーター:
      name - 値がリクエストされるパラメーターの名前を含む String 
      戻り値:
      パラメーターの値を含む String オブジェクトの配列
      例外:
      IllegalStateExceptionSE - パラメーターの解析がトリガーされ、パラメーターの解析中に次のような問題が発生した場合: 無効なパーセント (%nn) エンコーディング。指定された文字セットのバイトシーケンスが無効です。リクエスト本文の読み取り時の I/O エラー。パラメーター解析に関連するコンテナー定義の制限をトリガーします。コンテナーは、例外をスローしないなどの代替方法でこれらのエラーの一部またはすべてを処理するためのコンテナー固有のオプションを提供する場合があります。
      関連事項:
    • getParameterMap

      MapSE<StringSE,StringSE[]> getParameterMap()
      このリクエストのパラメーターの java.util.Map を返します。

      リクエストパラメーターは、リクエストとともに送信される追加情報です。HTTP サーブレットの場合、パラメーターはクエリ文字列または投稿されたフォームデータに含まれます。

      まだ解析されていない場合、このメソッドを呼び出すと、クエリ文字列、リクエスト本文のコンテンツ型が application/x-www-form-urlencoded である POST されたフォームデータ、およびリクエスト本文のコンテンツ型が multipart/form-data でサーブレットが MultipartConfig で構成されている POST されたフォームデータの解析がトリガーされます。アノテーションまたは デプロイ記述子の multipart-config 要素。

      戻り値:
      パラメーター名をキーとして、パラメーター値をマップ値として含む不変の java.util.Map。パラメーターマップのキーは String 型です。パラメーターマップの値は String 型です。
      例外:
      IllegalStateExceptionSE - パラメーターの解析がトリガーされ、パラメーターの解析中に次のような問題が発生した場合: 無効なパーセント (%nn) エンコーディング。指定された文字セットのバイトシーケンスが無効です。リクエスト本文の読み取り時の I/O エラー。パラメーター解析に関連するコンテナー定義の制限をトリガーします。コンテナーは、例外をスローしないなどの代替方法でこれらのエラーの一部またはすべてを処理するためのコンテナー固有のオプションを提供する場合があります。
    • getProtocol

      StringSE getProtocol()
      リクエストが使用するプロトコルの名前とバージョンを、protocol/majorVersion.minorVersion の形式で返します (例: HTTP/1.1)。
      戻り値:
      プロトコル名とバージョン番号を含む String 
    • getScheme

      StringSE getScheme()
      このリクエストを行うために使用されたスキームの名前を返します(例: httphttpsftp)。RFC 1738 に記載されているように、スキームが異なれば、URL を構築するためのルールも異なります。
      戻り値:
      このリクエストを行うために使用されるスキームの名前を含む String 
    • getServerName

      StringSE getServerName()
      リクエストが送信されたサーバーのホスト名を返します。これは、Host ヘッダー、HTTP/2 オーソリティ、または RFC 7239 などのプロトコル固有のメカニズムから導出される場合があります。それ以外の場合は、解決されたサーバー名またはサーバー IP アドレスです。
      戻り値:
      サーバーの名前を含む String 
    • getServerPort

      int getServerPort()
      リクエストが送信されたポート番号を返します。これは、Host ヘッダー、HTTP オーソリティ、または RFC 7239 などのプロトコル固有のメカニズムから派生する場合があります。それ以外の場合は、クライアント接続が受け入れられたサーバーポートです。
      戻り値:
      ポート番号を指定する整数
    • getReader

      BufferedReaderSE getReader() throws IOExceptionSE
      BufferedReader を使用して、リクエストの本文を文字データとして取得します。リーダーは、本文で使用される文字エンコーディングに従って文字データを変換します。このメソッドまたは getInputStream() のいずれかを呼び出して、本体を読み取ることができますが、両方はできません。
      戻り値:
      リクエストの本文を含む BufferedReader 
      例外:
      UnsupportedEncodingExceptionSE - 使用されている文字セットエンコーディングがサポートされておらず、テキストをデコードできない場合
      IllegalStateExceptionSE - このリクエストで getInputStream() メソッドが呼び出された場合
      IOExceptionSE - 入力または出力の例外が発生した場合
      関連事項:
    • getRemoteAddr

      StringSE getRemoteAddr()
      リクエストを受信した接続の リモート側のインターネットプロトコル (IP) を返します。デフォルトでは、これはリクエストを送信したクライアントまたは最後のプロキシのアドレスです。場合によっては、RFC 7239 などのプロトコル固有のメカニズムを使用して、実際の TCP/IP 接続のアドレスとは異なるアドレスを取得することがあります。
      戻り値:
      IP アドレスを含む String 
    • getRemoteHost

      StringSE getRemoteHost()
      getRemoteAddr() によって返されるアドレスの完全修飾名を返します。エンジンが (パフォーマンスを向上させるために) ホスト名を解決できない場合、または解決しないことを選択した場合、このメソッドは IP アドレスを返します。
      戻り値:
      完全修飾名または IP アドレスを含む String
    • setAttribute

      void setAttribute(StringSE name, ObjectSE o)
      このリクエストに属性を保存します。属性はリクエスト間でリセットされます。この方法は、ほとんどの場合 RequestDispatcher と組み合わせて使用されます。

      属性名は、パッケージ名と同じ規則に従う必要があります。
      渡されたオブジェクトが null の場合、効果は removeAttribute(java.lang.String) を呼び出した場合と同じです。
      サーブレットからリクエストが RequestDispatcher によって別の Web アプリケーションにある場合、このメソッドで設定されたオブジェクトは呼び出し元サーブレットで正しく取得されない可能性があることに注意してください。

      パラメーター:
      name - 属性の名前を指定する String 
      o - 格納される Object 
    • removeAttribute

      void removeAttribute(StringSE name)
      このリクエストから属性を削除します。属性はリクエストが処理されている間のみ持続するため、このメソッドは通常必要ありません。

      属性名はパッケージ名と同じ規則に従う必要があります。jakarta.* で始まる名前は、Jakarta Servlet 仕様で使用するために予約されています。

      パラメーター:
      name - 削除する属性の名前を指定する String 
    • getLocale

      LocaleSE getLocale()
      Accept-Language ヘッダーに基づいて、クライアントがコンテンツを受け入れる優先 Locale を返します。クライアントリクエストが Accept-Language ヘッダーを提供しない場合、このメソッドはサーバーのデフォルトロケールを返します。
      戻り値:
      クライアントの優先 Locale 
    • getLocales

      EnumerationSE<LocaleSE> getLocales()
      Locale オブジェクトの Enumeration を返します。優先ロケールで始まる降順で、Accept-Language ヘッダーに基づいてクライアントが受け入れ可能なロケールを示します。クライアントリクエストが Accept-Language ヘッダーを提供しない場合、このメソッドは、サーバーのデフォルトロケールである Locale を 1 つ含む Enumeration を返します。
      戻り値:
      クライアントの優先 Locale オブジェクトの Enumeration 
    • isSecure

      boolean isSecure()
      このリクエストが HTTPS などの安全なチャネルを使用して行われたかどうかを示すブール値を返します。
      戻り値:
      安全なチャネルを使用してリクエストが行われたかどうかを示すブール値
    • getRequestDispatcher

      RequestDispatcher getRequestDispatcher(StringSE path)
      指定されたパスにあるリソースのラッパーとして機能する RequestDispatcher オブジェクトを返します。RequestDispatcher オブジェクトを使用して、リクエストをリソースに転送したり、レスポンスにリソースを含めることができます。リソースは動的でも静的でもかまいません。

      指定されたパス名は相対パスである場合がありますが、現在のサーブレットコンテキストの外側には拡張できません。パスが "/" で始まる場合、現在のコンテキストルートを基準として解釈されます。サーブレットコンテナーが RequestDispatcher を返すことができない場合、このメソッドは null を返します。

      RequestDispatcher を使用すると、暗黙的(WEB-INF または META-INF への直接アクセスなし)および明示的(Web アプリケーションで定義された)セキュリティ制約の両方をバイパスして、Web アプリケーションの任意の部分にリクエストをディスパッチできます。サニタイズされていないユーザー提供データは、RequestDispatcher に渡されるパスを構築するために使用しないでください。アプリケーションにセキュリティの脆弱性が生じる可能性が非常に高いためです。

      このメソッドと ServletContext.getRequestDispatcher(java.lang.String) の違いは、このメソッドが相対パスを使用できることです。

      提供された path パラメーターは、リソースの照合に使用される前に、Servlet 6.0, 3.5.2 に従って正規化されます。

      パラメーター:
      path - リソースへのパス名を指定する String。相対的な場合は、現在のサーブレットに対して相対的でなければなりません。
      戻り値:
      指定されたパスのリソースのラッパーとして機能する RequestDispatcher オブジェクト、またはサーブレットコンテナーが RequestDispatcher を返せない場合は null 
      関連事項:
    • getRemotePort

      int getRemotePort()
      リクエストを受信した接続の リモート側のインターネットプロトコル (IP) ソースポートを返します。デフォルトでは、これはリクエストを送信したクライアントまたは最後のプロキシのポートです。場合によっては、RFC 7239 などのプロトコル固有のメカニズムを使用して、実際の TCP/IP 接続のポートとは異なるポートを取得することがあります。
      戻り値:
      ポート番号を指定する整数
      導入:
      Servlet 2.4
    • getLocalName

      StringSE getLocalName()
      getLocalAddr() によって返されるアドレスの完全修飾名を返します。エンジンが (パフォーマンスを向上させるために) ホスト名を解決できない場合、または解決しないことを選択した場合、このメソッドは IP アドレスを返します。
      戻り値:
      リクエストが受信された IP のホスト名を含む String
      導入:
      Servlet 2.4
    • getLocalAddr

      StringSE getLocalAddr()
      リクエストを受信したインターフェースを表すインターネットプロトコル (IP) アドレスを返します。場合によっては、RFC 7239 などのプロトコル固有のメカニズムを使用して、実際の TCP/IP 接続のアドレスとは異なるアドレスを取得することがあります。
      戻り値:
      IP アドレスを含む String
      導入:
      Servlet 2.4
    • getLocalPort

      int getLocalPort()
      リクエストを受信したインターフェースを表すインターネットプロトコル (IP) ポート番号を返します。場合によっては、RFC 7239 などのプロトコル固有のメカニズムを使用して、実際の TCP/IP 接続のアドレスとは異なるアドレスを取得することがあります。
      戻り値:
      ポート番号を指定する整数
      導入:
      Servlet 2.4
    • getServletContext

      ServletContext getServletContext()
      この ServletRequest が最後にディスパッチされたサーブレットコンテキストを取得します。
      戻り値:
      この ServletRequest が最後にディスパッチされたサーブレットコンテキスト
      導入:
      Servlet 3.0
    • startAsync

      このリクエストを非同期モードにし、その AsyncContext を元の(ラップされていない)ServletRequest および ServletResponse オブジェクトで初期化します。

      このメソッドを呼び出すと、返された AsyncContextAsyncContext.complete() が呼び出されるか、非同期操作がタイムアウトするまで、関連するレスポンスのコミットが遅延します。

      返された AsyncContext で AsyncContext.hasOriginalRequestAndResponse() を呼び出すと、true が返されます。このリクエストが非同期モードになった後、 送信方向で呼び出されるフィルターは、 受信呼び出し中に追加したリクエストおよび / またはレスポンスラッパーが非同期操作の期間中に留まる必要がないことを示すものとしてこれを使用できます。関連するリソースのいずれかが解放される場合があります。

      このメソッドは、各 AsyncListener をその onStartAsync メソッドで呼び出した後、startAsync メソッドの 1 つへの前回の呼び出しによって返された AsyncContext に登録された AsyncListener インスタンス (存在する場合) のリストをクリアします。

      このメソッドの後続の呼び出し、またはそのオーバーロードされたバリアントは、同じ AsyncContext インスタンスを返し、必要に応じて再初期化されます。

      戻り値:
      (再)初期化された AsyncContext
      例外:
      IllegalStateExceptionSE - このリクエストが、非同期操作をサポートしないフィルターまたはサーブレットの範囲内にある場合(つまり、isAsyncSupported() が false を返す場合)、非同期ディスパッチなしでこのメソッドが再度呼び出される場合(AsyncContext.dispatch() メソッドのいずれかにより)が呼び出されるそのようなディスパッチのスコープ外、または同じディスパッチのスコープ内で再度呼び出されるか、レスポンスがすでに閉じられている場合
      導入:
      Servlet 3.0
      関連事項:
    • startAsync

      AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateExceptionSE
      このリクエストを非同期モードにし、指定されたリクエストオブジェクトとレスポンスオブジェクトで AsyncContext を初期化します。

      ServletRequest および ServletResponse 引数は、サーブレットの service メソッドまたはフィルターの doFilter メソッドに渡された同じインスタンス、またはそれらをラップする ServletRequestWrapper および ServletResponseWrapper のインスタンスである必要があり、それぞれこのメソッドが呼び出されます。

      このメソッドを呼び出すと、返された AsyncContextAsyncContext.complete() が呼び出されるか、非同期操作がタイムアウトするまで、関連するレスポンスのコミットが遅延します。

      返された AsyncContext で AsyncContext.hasOriginalRequestAndResponse() を呼び出すと、渡された ServletRequest および ServletResponse 引数が元の引数であるか、アプリケーション提供のラッパーを持たない限り、false を返します。このリクエストが非同期モードになった後、 送信方向で呼び出されるフィルターは、 受信呼び出し中に追加したリクエストおよび / またはレスポンスラッパーの一部が非同期の期間中、その場所に留まる必要があることを示すものとしてこれを使用する場合があります。操作、および関連するリソースは解放されない可能性があります。フィルターの受信呼び出し中に適用された ServletRequestWrapper は、AsyncContext を初期化するために使用され、AsyncContext.getRequest() の呼び出しによって返される特定の servletRequest が上記の ServletRequestWrapper を含まない場合にのみ、フィルターの送信呼び出しによって解放されます。同じことが ServletResponseWrapper インスタンスにも当てはまります。

      このメソッドは、各 AsyncListener をその onStartAsync メソッドで呼び出した後、startAsync メソッドの 1 つへの前回の呼び出しによって返された AsyncContext に登録された AsyncListener インスタンス (存在する場合) のリストをクリアします。

      このメソッドまたはその引数ゼロのバリアントの後続の呼び出しは、同じ AsyncContext インスタンスを返し、必要に応じて再初期化されます。このメソッドの呼び出しの後に引数なしのバリアントへの呼び出しが続く場合、指定された(ラップされている可能性がある)リクエストおよびレスポンスオブジェクトは、返された AsyncContext でロックされたままになります。

      パラメーター:
      servletRequest - AsyncContext の初期化に使用される ServletRequest
      servletResponse - AsyncContext の初期化に使用される ServletResponse
      戻り値:
      (再)初期化された AsyncContext
      例外:
      IllegalStateExceptionSE - このリクエストが、非同期操作をサポートしないフィルターまたはサーブレットの範囲内にある場合(つまり、isAsyncSupported() が false を返す場合)、非同期ディスパッチなしでこのメソッドが再度呼び出される場合(AsyncContext.dispatch() メソッドのいずれかにより)が呼び出されるそのようなディスパッチのスコープ外、または同じディスパッチのスコープ内で再度呼び出されるか、レスポンスがすでに閉じられている場合
      導入:
      Servlet 3.0
    • isAsyncStarted

      boolean isAsyncStarted()
      このリクエストが非同期モードになっているかどうかを確認します。

      ServletRequest は、startAsync() または startAsync(ServletRequest,ServletResponse) を呼び出すことで非同期モードになります。

      このリクエストが非同期モードに設定された後、AsyncContext.dispatch() メソッドの 1 つを使用してディスパッチされたか、AsyncContext.complete() の呼び出しによって非同期モードから解放された場合、このメソッドは false を返します。startAsync() を呼び出したコンテナー開始ディスパッチがコンテナーに戻る前に AsyncContext.dispatch() または AsyncContext.complete() が呼び出された場合、startAsync() を呼び出したコンテナー開始ディスパッチがコンテナーに戻るまで、このメソッドは true を返さなければなりません。

      戻り値:
      このリクエストが非同期モードになっている場合は true、そうでない場合は false
      導入:
      Servlet 3.0
    • isAsyncSupported

      boolean isAsyncSupported()
      このリクエストが非同期操作をサポートしているかどうかを確認します。

      このリクエストが、デプロイ記述子で非同期処理をサポートできるとしてアノテーションまたはフラグが付けられていないフィルターまたはサーブレットのスコープ内にある場合、このリクエストの非同期操作は無効になります。

      戻り値:
      このリクエストが非同期操作をサポートする場合は true、そうでない場合は false
      導入:
      Servlet 3.0
    • getAsyncContext

      AsyncContext getAsyncContext()
      このリクエストで startAsync() または startAsync(ServletRequest,ServletResponse) の最新の呼び出しによって作成または再初期化された AsyncContext を取得します。
      戻り値:
      このリクエストでの startAsync() または startAsync(ServletRequest,ServletResponse) の最新の呼び出しによって作成または再初期化された AsyncContext
      例外:
      IllegalStateExceptionSE - このリクエストが非同期モードになっていない場合、つまり startAsync()startAsync(ServletRequest,ServletResponse) も呼び出されていない場合
      導入:
      Servlet 3.0
    • getDispatcherType

      DispatcherType getDispatcherType()
      このリクエストのディスパッチャー型を取得します。

      コンテナーは、リクエストのディスパッチャー型を使用して、リクエストに適用する必要があるフィルターを選択します。一致するディスパッチャー型と URL パターンを持つフィルターのみが適用されます。

      複数のディスパッチャー型用に設定されたフィルターを使用して、そのディスパッチャー型のリクエストを照会できるようにすることで、フィルターはディスパッチャー型に応じて異なる方法でリクエストを処理できます。

      リクエストの初期ディスパッチャー型は DispatcherType.REQUEST として定義されます。RequestDispatcher.forward(ServletRequest, ServletResponse) または RequestDispatcher.include(ServletRequest, ServletResponse) を介してディスパッチされたリクエストのディスパッチャー型は、それぞれ DispatcherType.FORWARD または DispatcherType.INCLUDE として提供され、AsyncContext.dispatch() メソッドの 1 つを介してディスパッチされた非同期リクエストのディスパッチャー型は DispatcherType.ASYNC として提供されます。最後に、コンテナーのエラー処理メカニズムによってエラーページにディスパッチされたリクエストのディスパッチャー型は、DispatcherType.ERROR として指定されます。

      戻り値:
      このリクエストのディスパッチャー型
      導入:
      Servlet 3.0
      関連事項:
    • getRequestId

      StringSE getRequestId()
      このリクエストの一意の (サーブレットコンテナーの有効期間内の) 識別子文字列を取得します。

      この文字列には定義された形式はありません。形式は実装に依存します。

      戻り値:
      リクエストの一意の識別子
      導入:
      Servlet 6.0
    • getProtocolRequestId

      StringSE getProtocolRequestId()
      使用中のプロトコルで定義されているように、このリクエストのリクエスト識別子を取得します。一部のプロトコルでは、そのような識別子が定義されていないことに注意してください。

      プロトコル提供のリクエスト識別子の例には、次のものがあります。

      HTTP 1.x
      なし。空の文字列を返す必要があります
      HTTP 2
      ストリーム識別子
      HTTP 3
      ストリーム識別子
      AJP
      なし。空の文字列を返す必要があります
      戻り値:
      定義されている場合はリクエスト識別子、そうでない場合は空の文字列
      導入:
      Servlet 6.0
    • getServletConnection

      ServletConnection getServletConnection()
      このリクエストで使用されているサーブレットコンテナーへのネットワーク接続の詳細を取得します。生の情報は、サーブレット API の他の場所で適用されるリバースプロキシの使用などの調整なしで提供されるため、提示される情報は、サーブレット API の他の場所で提示される情報とは異なる場合があります。
      戻り値:
      ネットワーク接続の詳細。
      導入:
      Servlet 6.0