public interface HttpServletRequest extends ServletRequest
ServletRequest
インターフェースを拡張して、HTTP サーブレットのリクエスト情報を提供します。 サーブレットコンテナーは HttpServletRequest
オブジェクトを作成し、それを引数としてサーブレットのサービスメソッド(doGet
、doPost
など)に渡します。
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | BASIC_AUTH 基本認証の文字列識別子。 |
static StringSE | CLIENT_CERT_AUTH クライアント証明書認証の文字列識別子。 |
static StringSE | DIGEST_AUTH ダイジェスト認証の文字列識別子。 |
static StringSE | FORM_AUTH フォーム認証の文字列識別子。 |
修飾子と型 | メソッドと説明 |
---|---|
boolean | authenticate(HttpServletResponse response) ServletContext 用に設定されたコンテナーログインメカニズムを使用して、このリクエストを行うユーザーを認証します。 |
StringSE | changeSessionId() このリクエストに関連付けられている現在のセッションのセッション ID を変更し、新しいセッション ID を返します。 |
StringSE | getAuthType() サーブレットを保護するために使用される認証スキームの名前を返します。 |
StringSE | getContextPath() リクエストのコンテキストを示すリクエスト URI の部分を返します。 |
Cookie[] | getCookies() クライアントがこのリクエストで送信したすべての Cookie オブジェクトを含む配列を返します。 |
long | getDateHeader(StringSE name) 指定されたリクエストヘッダーの値を、 Date オブジェクトを表す long 値として返します。 |
StringSE | getHeader(StringSE name) 指定されたリクエストヘッダーの値を String として返します。 |
EnumerationSE<StringSE> | getHeaderNames() このリクエストに含まれるすべてのヘッダー名の列挙を返します。 |
EnumerationSE<StringSE> | getHeaders(StringSE name) 指定されたリクエストヘッダーのすべての値を、 String オブジェクトの Enumeration として返します。 |
default HttpServletMapping | getHttpServletMapping() |
int | getIntHeader(StringSE name) 指定されたリクエストヘッダーの値を int として返します。 |
StringSE | getMethod() このリクエストが行われた HTTP メソッドの名前(GET、POST、PUT など)を返します。 |
Part | getPart(StringSE name) 指定された名前の Part を取得します。 |
CollectionSE<Part> | getParts() 型が multipart/form-data である場合、このリクエストのすべての Part コンポーネントを取得します。 |
StringSE | getPathInfo() クライアントがこのリクエストを行ったときに送信した URL に関連付けられた追加のパス情報を返します。 |
StringSE | getPathTranslated() サーブレット名の後、クエリ文字列の前に追加のパス情報を返し、それを実際のパスに変換します。 |
StringSE | getQueryString() リクエスト URL のパスの後に含まれるクエリ文字列を返します。 |
StringSE | getRemoteUser() ユーザーが認証されている場合はこのリクエストを行っているユーザーのログインを返し、ユーザーが認証されていない場合は null を返します。 |
StringSE | getRequestedSessionId() クライアントによって指定されたセッション ID を返します。 |
StringSE | getRequestURI() HTTP リクエストの最初の行で、このリクエストの URL のプロトコル名からクエリ文字列までの部分を返します。 |
StringBufferSE | getRequestURL() クライアントがリクエストの作成に使用した URL を再構築します。 |
StringSE | getServletPath() サーブレットを呼び出すこのリクエストの URL の一部を返します。 |
HttpSession | getSession() このリクエストに関連付けられている現在のセッションを返すか、リクエストにセッションがない場合は作成します。 |
HttpSession | getSession(boolean create) このリクエストに関連付けられている現在の HttpSession を返すか、現在のセッションがなく、create が true の場合、新しいセッションを返します。 |
default MapSE<StringSE, StringSE> | getTrailerFields() リクエストトレーラーフィールドを取得します。 |
PrincipalSE | getUserPrincipal() 現在の認証済みユーザーの名前を含む java.security.Principal オブジェクトを返します。 |
boolean | isRequestedSessionIdFromCookie() リクエストされたセッション ID が HTTP Cookie としてサーバーに伝達されたかどうかを確認します。 |
boolean | isRequestedSessionIdFromUrl() 使用すべきではありません。 Java Servlet API のバージョン 2.1 以降では、代わりに isRequestedSessionIdFromURL() を使用してください。 |
boolean | isRequestedSessionIdFromURL() リクエストされたセッション ID がリクエスト URL の一部としてサーバーに伝達されたかどうかを確認します。 |
boolean | isRequestedSessionIdValid() リクエストされたセッション ID がまだ有効かどうかを確認します。 |
default boolean | isTrailerFieldsReady() トレーラーフィールドが getTrailerFields() を使用して読み取る準備ができているかどうかを示すブール値を返します。 |
boolean | isUserInRole(StringSE role) 認証されたユーザーが指定された論理的な「ロール」に含まれているかどうかを示すブール値を返します。 |
void | login(StringSE username, StringSE password) ServletContext 用に設定された Web コンテナーログインメカニズムで使用されるパスワード検証レルムで提供されたユーザー名とパスワードを検証します。 |
void | logout() リクエストで getUserPrincipal 、getRemoteUser 、getAuthType が呼び出されたときに返される値として null を確立します。 |
default PushBuilder | newPushBuilder() 現在のリクエストからサーバープッシュレスポンスを発行するために、 PushBuilder の新しいインスタンスをインスタンス化します。 |
<T extends HttpUpgradeHandler> | upgrade(ClassSE<T> handlerClass) 指定されたクラスの HttpUpgradeHandler のインスタンスを作成し、http プロトコルのアップグレード処理に使用します。 |
getAsyncContext, getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getParameter, getParameterMap, getParameterNames, getParameterValues, getProtocol, getReader, getRealPath, getRemoteAddr, getRemoteHost, getRemotePort, getRequestDispatcher, getScheme, getServerName, getServerPort, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, removeAttribute, setAttribute, setCharacterEncoding, startAsync, startAsync
static final StringSE CLIENT_CERT_AUTH
StringSE getAuthType()
null
が返されます。CGI 変数 AUTH_TYPE の値と同じです。
null
Cookie[] getCookies()
Cookie
オブジェクトを含む配列を返します。Cookie が送信されなかった場合、このメソッドは null
を返します。Cookies
の配列、またはリクエストに Cookie がない場合は null
long getDateHeader(StringSE name)
Date
オブジェクトを表す long
値として返します。If-Modified-Since
などの日付を含むヘッダーでこのメソッドを使用します。日付は、1970 年 1 月 1 日 GMT からのミリ秒数として返されます。ヘッダー名では大文字と小文字が区別されません。
リクエストに指定された名前のヘッダーがなかった場合、このメソッドは -1 を返します。ヘッダーを日付に変換できない場合、メソッドは IllegalArgumentException
をスローします。
name
- ヘッダーの名前を指定する String
long
値、または名前付きヘッダーがリクエストに含まれていない場合は -1IllegalArgumentExceptionSE
- ヘッダー値を日付に変換できない場合 StringSE getHeader(StringSE name)
String
として返します。リクエストに指定された名前のヘッダーが含まれていなかった場合、このメソッドは null
を返します。同じ名前のヘッダーが複数ある場合、このメソッドはリクエストの最初のヘッドを返します。ヘッダー名では大文字と小文字が区別されません。このメソッドは、任意のリクエストヘッダーで使用できます。name
- ヘッダー名を指定する String
String
、またはリクエストにその名前のヘッダーがない場合は null
EnumerationSE<StringSE> getHeaders(StringSE name)
String
オブジェクトの Enumeration
として返します。Accept-Language
などの一部のヘッダーは、ヘッダーをコンマ区切りリストとして送信するのではなく、それぞれ異なる値を持つ複数のヘッダーとしてクライアントから送信できます。
リクエストに指定された名前のヘッダーが含まれていなかった場合、このメソッドは空の Enumeration
を返します。ヘッダー名では大文字と小文字が区別されません。このメソッドは、任意のリクエストヘッダーで使用できます。
name
- ヘッダー名を指定する String
Enumeration
リクエストにその名前のヘッダーがない場合、空の列挙を返します。コンテナーがヘッダー情報へのアクセスを許可しない場合、null を返します EnumerationSE<StringSE> getHeaderNames()
一部のサーブレットコンテナーでは、サーブレットがこのメソッドを使用してヘッダーにアクセスすることを許可しません。この場合、このメソッドは null
を返します
null
int getIntHeader(StringSE name)
int
として返します。リクエストに指定された名前のヘッダーがない場合、このメソッドは -1 を返します。ヘッダーを整数に変換できない場合、このメソッドは NumberFormatException
をスローします。ヘッダー名では大文字と小文字が区別されません。
name
- リクエストヘッダーの名前を指定する String
NumberFormatExceptionSE
- ヘッダー値を int
に変換できない場合 default HttpServletMapping getHttpServletMapping()
この HttpServletRequest
の HttpServlet
が呼び出された HttpServletMapping
を返します。該当する Filter
のマッピングは結果に示されていません。現在アクティブな Servlet
呼び出しが ServletRequest.getRequestDispatcher(java.lang.String)
への呼び出しとそれに続く RequestDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
への呼び出しによって取得された場合、返される HttpServletMapping
は RequestDispatcher
を取得するために使用されるパスに対応するものです。現在アクティブな Servlet
呼び出しが ServletRequest.getRequestDispatcher(java.lang.String)
の呼び出しとそれに続く RequestDispatcher.include(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
の呼び出しによって取得された場合、返される HttpServletMapping
は、呼び出しシーケンスの最初の Servlet
を呼び出したパスに対応するものです。現在アクティブな Servlet
呼び出しが AsyncContext.dispatch()
の呼び出しによって取得された場合、返される HttpServletMapping
は、呼び出しシーケンスの最初の Servlet
を呼び出したパスに対応するものです。HttpServletMapping
に関連する追加のリクエスト属性については、RequestDispatcher.FORWARD_MAPPING
、RequestDispatcher.INCLUDE_MAPPING
、AsyncContext.ASYNC_MAPPING
を参照してください。現在アクティブな Servlet
呼び出しが ServletContext.getNamedDispatcher(java.lang.String)
の呼び出しによって取得された場合、返される HttpServletMapping
は、このリクエストに最後に適用されたマッピングのパスに対応するものです。
返されるオブジェクトは不変です。Servlet 4.0 準拠の実装は、このメソッドをオーバーライドする必要があります。
HttpServletMapping
のインスタンス。null
を返す HttpServletMapping
を返します。StringSE getMethod()
String
StringSE getPathInfo()
追加のパス情報がなかった場合、このメソッドは null
を返します。
CGI 変数 PATH_INFO の値と同じです。
String
。リクエスト URL 内のサーブレットパスの後、クエリ文字列の前にある追加のパス情報を指定します。または、URL に追加のパス情報がない場合は null
StringSE getPathTranslated()
URL に追加のパス情報がない場合、このメソッドは null
を返すか、サーブレットコンテナーが何らかの理由(Web アプリケーションがアーカイブから実行される場合など)で仮想パスを実際のパスに変換できません。Web コンテナーはこの文字列をデコードしません。
String
、または URL に追加のパス情報がない場合は null
default PushBuilder newPushBuilder()
PushBuilder
の新しいインスタンスをインスタンス化します。現在の接続がサーバープッシュをサポートしていない場合、または SETTINGS_ENABLE_PUSH
設定フレーム値 0
(ゼロ)を介してクライアントによってサーバープッシュが無効にされている場合、このメソッドは null を返します。PushBuilder
。プッシュがサポートされていない場合は nullStringSE getContextPath()
サーブレットコンテナーは、複数のコンテキストパスによってコンテキストと一致する可能性があります。このような場合、このメソッドはリクエストで使用される実際のコンテキストパスを返します。ServletContext.getContextPath()
メソッドが返すパスとは異なる場合があります。ServletContext.getContextPath()
によって返されるコンテキストパスは、アプリケーションのプライムまたは優先コンテキストパスと見なされる必要があります。
String
ServletContext.getContextPath()
StringSE getQueryString()
null
を返します。CGI 変数 QUERY_STRING の値と同じ。String
または URL にクエリ文字列が含まれていない場合は null
値はコンテナーによってデコードされません。StringSE getRemoteUser()
null
を返します。後続の各リクエストでユーザー名が送信されるかどうかは、ブラウザーと認証の種類によって異なります。CGI 変数 REMOTE_USER の値と同じです。String
、またはユーザーのログインが不明な場合は null
boolean isUserInRole(StringSE role)
false
を返します。isUserInRole
を呼び出す際に、ロール名 "*" を引数として使用しないでください。"*" を使用して isUserInRole
を呼び出すと、false を返す必要があります。テストするセキュリティロールのロール名が "**" で、アプリケーションがロール名 "**" のアプリケーションセキュリティロールを宣言していない場合、isUserInRole
はユーザーが認証された場合にのみ true を返す必要があります。つまり、getRemoteUser()
と getUserPrincipal()
の両方が null 以外の値を返す場合のみです。それ以外の場合、コンテナーはアプリケーションロールのメンバーシップについてユーザーを確認する必要があります。
role
- ロールの名前を指定する String
boolean
。ユーザーが認証されていない場合、false
PrincipalSE getUserPrincipal()
java.security.Principal
オブジェクトを返します。ユーザーが認証されていない場合、メソッドは null
を返します。java.security.Principal
。ユーザーが認証されていない場合、null
StringSE getRequestedSessionId()
null
を返します。String
、またはリクエストがセッション ID を指定しなかった場合は null
isRequestedSessionIdValid()
StringSE getRequestURI()
HTTP リクエストの最初の行 | 戻り値 | |
---|---|---|
POST/some/path.html HTTP/1.1 | /some/path.html | |
GET http://foo.bar/a.html HTTP/1.0 | /a.html | |
HEAD/xyz?a=b HTTP/1.1 | /xyz |
スキームとホストで URL を再構築するには、HttpUtils.getRequestURL(javax.servlet.http.HttpServletRequest)
を使用します。
String
HttpUtils.getRequestURL(javax.servlet.http.HttpServletRequest)
StringBufferSE getRequestURL()
このリクエストが RequestDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
を使用して転送された場合、再構成された URL のサーバーパスは、クライアントが指定したサーバーパスではなく、RequestDispatcher の取得に使用されたパスを反映する必要があります。
このメソッドは文字列ではなく StringBuffer
を返すため、たとえばクエリパラメーターを追加するために URL を簡単に変更できます。
このメソッドは、リダイレクトメッセージの作成とエラーの報告に役立ちます。
StringBuffer
オブジェクト StringSE getServletPath()
このリクエストの処理に使用されたサーブレットが "/*" パターンを使用して一致した場合、このメソッドは空の文字列("")を返します。
String
、デコード、リクエストの処理に使用されるサーブレットが "/*" パターンを使用して一致する場合は空の文字列。HttpSession getSession(boolean create)
HttpSession
を返すか、現在のセッションがなく、create
が true の場合、新しいセッションを返します。create
が false
であり、リクエストに有効な HttpSession
がない場合、このメソッドは null
を返します。
セッションが適切に維持されるようにするには、レスポンスがコミットされる前にこのメソッドを呼び出す必要があります。コンテナーが Cookie を使用してセッションの整合性を維持しており、レスポンスがコミットされたときに新しいセッションを作成するように要求された場合、IllegalStateException がスローされます。
create
- 必要に応じて、このリクエストの新しいセッションを作成する true
。現在のセッションがない場合に null
を返す false
HttpSession
または create
が false
でリクエストに有効なセッションがない場合は null
getSession()
HttpSession getSession()
HttpSession
getSession(boolean)
StringSE changeSessionId()
IllegalStateExceptionSE
- リクエストに関連付けられたセッションがない場合 boolean isRequestedSessionIdValid()
クライアントがセッション ID を指定しなかった場合、このメソッドは false
を返します。
true
。それ以外の場合は false
getRequestedSessionId()
, getSession(boolean)
, HttpSessionContext
boolean isRequestedSessionIdFromCookie()
リクエストされたセッション ID が HTTP Cookie としてサーバーに伝達されたかどうかを確認します。
true
。それ以外の場合、false
getSession(boolean)
boolean isRequestedSessionIdFromURL()
リクエストされたセッション ID がリクエスト URL の一部としてサーバーに伝達されたかどうかを確認します。
true
。それ以外の場合、false
getSession(boolean)
@DeprecatedSE boolean isRequestedSessionIdFromUrl()
isRequestedSessionIdFromURL()
を使用してください。true
。それ以外の場合、false
boolean authenticate(HttpServletResponse response) throws IOExceptionSE, ServletException
ServletContext
用に設定されたコンテナーログインメカニズムを使用して、このリクエストを行うユーザーを認証します。 このメソッドは、引数 HttpServletResponse
を変更およびコミットできます。
response
- この HttpServletRequest
に関連付けられた HttpServletResponse
getUserPrincipal
、getRemoteUser
、getAuthType
によって返される値として確立された、または確立された場合の true
。認証が不完全で、基盤となるログインメカニズムがレスポンスで、ユーザーに返されるメッセージ(チャレンジなど)と HTTP ステータスコードをコミットした場合は、false
を返します。IOExceptionSE
- このリクエストからの読み取り中または指定されたレスポンスへの書き込み中に入力または出力エラーが発生した場合 IllegalStateExceptionSE
- ログインメカニズムがレスポンスを変更しようとし、すでにコミットされている場合 ServletException
- 認証が失敗し、呼び出し元がエラーを処理する責任がある場合 (すなわち、基礎となるログインメカニズムは、ユーザーに返されるメッセージと HTTP ステータスコードを確立しませんでした)void login(StringSE username, StringSE password) throws ServletException
ServletContext
用に設定された Web コンテナーログインメカニズムで使用されるパスワード検証レルムで提供されたユーザー名とパスワードを検証します。 このメソッドは、ServletContext
用に構成されたログインメカニズムがユーザー名パスワードの検証をサポートしている場合、およびログインの呼び出し時にリクエストの呼び出し元の ID が確立されていない場合(つまり、getUserPrincipal
、getRemoteUser
、getAuthType
のすべて)、ServletException
をスローせずに戻ります。null を返します)、提供された資格情報の検証が成功した場合。それ以外の場合、このメソッドは以下に説明するように ServletException
をスローします。
このメソッドが例外をスローせずに戻る場合、getUserPrincipal
、getRemoteUser
、getAuthType
によって返される値として null 以外の値を確立している必要があります。
username
- ユーザーのログイン ID に対応する String
値。password
- 識別されたユーザーに対応するパスワード String
。ServletException
- 構成されたログインメカニズムがユーザー名パスワード認証をサポートしていない場合、または null 以外の発信者 ID がすでに確立されている場合(ログイン呼び出しの前)、または提供されたユーザー名とパスワードの検証が失敗した場合 void logout() throws ServletException
getUserPrincipal
、getRemoteUser
、getAuthType
が呼び出されたときに返される値として null
を確立します。ServletException
- ログアウトに失敗した場合 CollectionSE<Part> getParts() throws IOExceptionSE, ServletException
multipart/form-data
である場合、このリクエストのすべての Part
コンポーネントを取得します。 このリクエストの型が multipart/form-data
であるが、Part
コンポーネントが含まれていない場合、返される Collection
は空になります。
返された Collection
に対する変更は、この HttpServletRequest
に影響してはなりません。
Part
コンポーネントの(おそらく空の) Collection
IOExceptionSE
- このリクエストの Part
コンポーネントの取得中に I/O エラーが発生した場合 ServletException
- このリクエストが型 multipart/form-data
でない場合 IllegalStateExceptionSE
- リクエスト本体が maxRequestSize
より大きいか、リクエスト内の Part
が maxFileSize
より大きいか、デプロイ記述子に @MultipartConfig
または multipart-config
がない場合 MultipartConfig.maxFileSize()
, MultipartConfig.maxRequestSize()
Part getPart(StringSE name) throws IOExceptionSE, ServletException
Part
を取得します。name
- リクエストされた Part
の名前 Part
、またはリクエスト型が multipart/form-data
でも Part
が含まれていない場合は null
IOExceptionSE
- リクエストされた Part
の取得中に I/O エラーが発生した場合 ServletException
- このリクエストが型 multipart/form-data
でない場合 IllegalStateExceptionSE
- リクエスト本体が maxRequestSize
より大きいか、リクエスト内の Part
が maxFileSize
より大きいか、デプロイ記述子に @MultipartConfig
または multipart-config
がない場合 MultipartConfig.maxFileSize()
, MultipartConfig.maxRequestSize()
<T extends HttpUpgradeHandler> T upgrade(ClassSE<T> handlerClass) throws IOExceptionSE, ServletException
HttpUpgradeHandler
のインスタンスを作成し、http プロトコルのアップグレード処理に使用します。T
- handlerClass
の HttpUpgradeHandler
を継承する Class
。handlerClass
- アップグレードに使用される HttpUpgradeHandler
クラス。HttpUpgradeHandler
のインスタンス IOExceptionSE
- アップグレード中に I/O エラーが発生した場合 ServletException
- 指定された handlerClass
のインスタンス化に失敗した場合 HttpUpgradeHandler
, WebConnection
default MapSE<StringSE,StringSE> getTrailerFields()
返されたマップは HttpServletRequest
オブジェクトによって支援されないため、返されたマップの変更は HttpServletRequest
オブジェクトに反映されず、その逆も同様です。
isTrailerFieldsReady()
を最初に呼び出して、例外を発生させずにこのメソッドを呼び出しても安全かどうかを判断する必要があります。
isTrailerFieldsReady()
が true を返している場合、空のマップが返されます。IllegalStateExceptionSE
- isTrailerFieldsReady()
が偽の場合 default boolean isTrailerFieldsReady()
getTrailerFields()
を使用して読み取る準備ができているかどうかを示すブール値を返します。このメソッドは、リクエストにトレーラがないことがわかっている場合、たとえば、基になるプロトコル(HTTP 1.0 など)がトレーラフィールドをサポートしていないか、リクエストが HTTP 1.1 のチャンクエンコーディングにない場合、すぐに true を返します。また、次の条件の両方が満たされる場合、メソッドは true を返します。ServletRequest.getReader()
または ServletRequest.getInputStream()
から EOF 指示が返されました。Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.