要求オブジェクトのメソッド一覧

 


仕様書で定義されている全てのメソッドの一覧を下表で示す。これらの詳細はここでは説明しないが、眼を通していただくと、そのうちかなりがあとで紹介するHttpRequestDumpというサーブレットで使われていることがお分かりだろう。従って実際に各メソッドの動作は皆さんがこのサーブレットを使って試してみることができる。

 

正確にはhttp://java.sun.com/products/servlet/2.2/javadoc/index.html参照のこと

public interface ServletRequest

public Object getAttribute(String name);

 

指定された名前の属性をObject型で返す。その名前の属性がなければnullを返す。属性は以下の二つの方法でセットできる。サーブレットコンテナが認証などで要求の顧客情報を取得可能にするためにセットする。もうひとつはプログラムがsetAttribute(java.lang.String, java.lang.Object

メソッドを使ってセットする。こうするとRequestDispatcher呼び出しをする前に要求に情報を埋め込むことができる。属性の名前はパッケージ名の規約とおなじ規約に従う。

public void setAttribute(String name, Object attribute);

要求に属性をセットする。属性は要求ごとにリセットされる。このメソッドはRequestDispatcherとともに通常使用する。

public Enumeration getAttributeNames();

列挙型でこの要求で取得可能な属性の名前を返す。この要求に属性が存在しなければ空を返す。

public void removeAttribute(String name);

この属性を処理中の要求から除去する。通常は必要としない。

public Locale getLocale();

クライアントがAccept-Language ヘッダ行で指定してきたクライアントが対応可能な言語地域指定をLocale型で返す。クライアントが特に指定していなければ、このサーバのデフォルトのロケールを返す。

public Enumeration getLocales();

上記と同じだが、列挙型でロケールを降順で返す。

public String getCharacterEncoding();

HTTP要求パケットのボディ部分に使われている文字エンコーディングを返す。この要求に文字エンコーディングが指定されていないときにはnullを返す。

public int getContentLength();

入力ストリームで取得可能であるHTTP要求パケットのボディ部分の長さをバイト数で返す。この長さが不明の場合は-1を返す。

public String getContentType();

HTTP要求パケットのボディ部分のMIMEタイプを返す。MIMEタイプが不明の場合はnullを返す。

public ServletInputStream getInputStream() throws IOException;

HTTP要求パケットのボディ部分のデータをServletInputStreamを用いて読み出すには、このメソッドまたはgetReader()のいずれかを使う。この要求のボディ部を含むServletInputStreamオブジェクトを返す。

java.lang.IllegalStateException –該要求にgetReader()メソッドが既に呼ばれてしまっている場合。java.io.IOException –入出力の例外が発生した場合。

public String getParameter(String name);

要求パラメタをString型で返す。その名前のパラメタが存在しないときにはnullを返す。要求パラメタはクエリ文字列かフォームデータのPOSTにより送られる。このメソッドを使うときにはその名前のパラメタがただひとつの値しか持っていないことをあらかじめ確認しておく必要がある。もし複数の値を持っている可能性があるときにはgetParameterValues(java.lang.String)を使うこと。複数の値が存在する場合は、このメソッドは最初の値を返す。要求がPOSTメソッドで送られる場合は、これらの要求パラメタはgetInputStream() またはgetReader()メソッドを使って読み出すこともできる。

public String getParameterNames();

この要求に含まれているパラメタの名前の全てをStringオブジェクトの列挙型で返す。この要求にパラメタが含まれていなければ空の列挙型のオブジェクトを返す。

public String[] getParameterValues(java.lang.String name);

この要求に存在する指定された名前の全ての値をStringオブジェクトの配列で返す。そのパラメタが存在しなければnullを返す。そのパラメタが単一の値しか待たない場合は、配列の長さは1となる。protocol/majorVersion.minorVersion

public String getProtocol();

この要求が使っているプロトコルをHTTP/1.1のようにprotocol/majorVersion.minorVersion の形式で返す。

public String getScheme();

この要求を作るのに使われたhttp, https, あるいはftpなどのスキームを返す。RFC 1738で規定されているように、スキームによってURLの組み立てルールが違ってくる。

public String getServerName();

この要求を受信したサーバのホスト名を返す。

public String gerServerPort();

この要求を受信したTCPポート番号を返す。

public BufferReader getReader() throws IOException;

HTTP要求パケットのボディ部をBufferedReader を使って文字データとして読み出す。このリーダはこのボディ部に使われている文字エンコーディングに基づいて変換を行う。getReader()とこのメソッドともにボディ読み出しに使えるが同時使用はできない。

java.io.UnsupportedEncodingException – この文字セットエンコーディグはサポートしていないのでデコードできない。java.lang.IllegalStateException –該要求に既にgetInputStream() が呼ばれてしまっている。java.io.IOException – 入出力の例外が発生した。

public String getRemoteAddr();

この要求を送信したクライアントのIPアドレスをStringで返す。

public String getRemoteHost();

この要求を送信したクライアントの名前を正式名(fully qualified name)Stringで返す。

public Boolean isSecure();

該要求がHTTPSなどのセキュアなチャンネルを介してなされているかを返す。

public RequestDispatcher getRequestDispatcher(String path);

与えられたパスに位置するリソースのラッパとして機能するRequestDispatcherオブジェクトを返す。RequestDispatcher は要求をそのリソースに転送したり、そのリソースを応答に含めてしまうのに使うことができる。このリソースはダイナミックでもスタティックでも良い。指定するパス名は相対で指定しても良いが、その場合は現在のサーブレットコンテキストの外部には拡張は出来ない。パスが”/”で始まる場合はこれは現行のコンテキストルートに対して相対であると解釈される。このサーブレットコンテナがRequestDispatcherを返せないときはnullを返す。

public interface HttpServletRequest extends ServletRequest;

public String getAuthType();

例えば"BASIC" "SSL"などのようにこのサーブレットを保護するために使われた認証のスキームの名前を返す。このサーブレットが保護されていない場合はnullを返す。

public Cookie[] getCookies();

この要求でクライアントが送ってきたクッキのオブジェクトの全てを配列で返す。クッキが含まれていなければnullを返す。

public long getDateHeader(String name);

要求ヘッダに指定されているDateオブジェクトの値をlong値で返す。Dateオブジェクトを作るヘッダ行はIf-Modified-Sinceのように日付を含むものである。このdate値は197011GMTからのミリ秒である。ヘッダの名前を指定するパラメタは大文字と小文字を区別しない。指定された名前のヘッダがこの要求に含まれていないときは-1を返す。そのヘッダがdateに変換できないときはIllegalArgumentException例外がスローされる。

public String getHeader(String name);

指定した要求ヘッダの値がStringとして返される。指定した名前のヘッダがこの要求に含まれていなければnullを返す。ヘッダ名は大文字と小文字の区別をしない。

public Enumeration getHeaders(String name);

指定した要求ヘッダの値をStringオブジェクトの列挙型で返す。例えばAccept-Languageなどのヘッダは”,”で区切って複数の値を送ってくるからである。指定された名前のヘッダがこの要求に含まれていないときは、空の列挙オブジェクトを返す。

public Enumeration getHeaderNames();

この要求に含まれているヘッダの全ての名前を列挙型で返す。ヘッダが含まれていないときは空の列挙オブジェクトを返す。

public int getIntHeader(String name);

指定した要求ヘッダの値をint値として返す。指定した名前のヘッダ行が存在しなければ-1を返す。ヘッダが整数に変換できないときはNumberFormatExceptionをスローする。

public String getMethod();

この要求が送信されたHTTPのメソッドを返す。

public String getContextPath();

該要求の要求URIのコンテキストを示す部分を返す。コンテキストパスは要求URIの最初の部分になる。このパスは”/”で始まるが”/”文字では終了しない。デフォルト(ルート)のコンテキストにあるサーブレットは””を返す。

public String getPathInfo();

この要求がなされたときにクライアントが送信したURLに対応する追加パス情報を返す。この追加パス情報はサーブレットパスの後に続き、クエリ文字列の前に存在する部分である。追加パス情報が存在しなければnullを返す。

public String getPathTranslated();

サーブレット名とクエリ文字列の間の追加パス情報を実際のパスで返す。

public String getQueryString();

要求URLのパスの後にクエリ文字列が含まれていればそれを返す。

public String getRemoteUser();

この要求をしたユーザが認証されていればこのユーザを返す。層でなければnullを返す。各要求ごとにユーザ名が送られてくるかどうかはブラウザと認証の形式による。

public Boolean isUserInRole(String role);

認証されたユーザが指定されたこの論理ロールに含まれているかをブール値で返す。ロールとそのメンバは導入デスクリプタを用いて定義することができる。このユーザが認証を受けていないときはこのメソッドはfalseを返す。

public java.security.principal getUserPrincipal();

現在の認証済みユーザの名前を含むjava.security.Principalオブジェクトを返す。このユーザが認証されていないときはこのメソッドはnullを返す。

public String getRequestedSessionId();

このクライアントにより指定されたセッションIDを返す。これは実際に使われているセッションのIDと異なる場合がある。例えば、要求が古い(期限切れ)セッションIDを指定してき、サーバが新しいセッションを開始した場合、このメソッドは新しいIDで新しいセッションを起こす。要求がセッションIDを指定していないときはnullを返す。

public boolean isRequestedSessionIdValid();

指定されたセッションIDがまだ有効かを返す。

public Boolean isRequestedSessionIdFromCookie();

要求されたセッションIDがクッキでなされているかどうかを返す。

public Boolean isRequestedSessionIdFromURL();

要求されたセッションIDURIでなされているかどうかを返す。

public String getRequestURI();

HTTP要求の所期要求行のプロトコル名とクエリ文字列の間のURL部を返す。例えば:

POST /some/path.html HTTP/1.1  /some/path.html  が、

GET http://foo.bar/a.html HTTP/1.0  http://foo.bar/a.html  が、

HEAD /xyz?a=b HTTP/1.1  /xyz  が返る。

URLをスキームとホストから作り直すときはHttpUtils.getRequestURL(javax.servlet.http.HttpServletRequest)を使う。

public String getServletPath();

このサーブレットを呼んだ要求のURLを返す。サーブレット名とこのサーブレットへのパスも含む。

public HttpSession getSession();

この要求に対応する現在のセッションを返す。この要求がセッションを持たないときは新しいセッションを作る。

public HttpSession getSession(Boolean create);

この要求に対応した現在のHttpSessionを返すか、現行のセッションが存在せず、かつcreatetrueのときは、新しいセッションを返す。createfalseだ、かつこの要求が有効なHttpSessionを有さないときは、このメソッドはnullを返す。セッションが正しく維持されるためにはこのメソッドを応答がコミットされる前に呼ばねばならない。

 

 

前節     目次     次節