―Servlet/JSPリファレンス―

@ITハイブックス編
2003/10/24
Javaプログラミング
ワンポイントレクチャーについて

   HttpServletRequestオブジェクトの役割

   ワンポイントQuestion

 コンテキストルートを取得するためのメソッドは、次のうちどれですか?(単一選択)

A getContextPath()
B getServletPath()
C getRequestURI()
D getRequestURL()
E getPathInfo()

   解説

 HttpServletRequestは、サービス処理本体(doGet()、doPost()など)が受け取るクライアントからサーバに送られたリクエスト情報が格納されているオブジェクトです。言い換えると、HTTPリクエストに詰まっている情報をこのオブジェクトから取得することができます。このオブジェクトには以下のようなメソッドが用意されています。

HTTPパラメータ
Enumeration getParameterNames()
String getParameter(String name)
String[] getParameterValues(String name)

データ共有
void setAttribute(String name, Object value)
Object getAttribute(String name)
Enumeration getAttributeNames()
void removeAttribute(String name)

ヘッダ情報
String getHeader(String name)
Enumeration getHeaders(String name)
Enumeration getHeaderNames()

要求URL情報
String getContextPath()
String getServletPath()
String getRequestURI()
String getRequestURL()

クッキー
Cookie[] getCookies()

セッション情報
HttpSession getSession(boolean create)
※そのほかには、クライアントから送信されたデータの文字コードを指定するための、void setCharacterEncoding(String env)があります。

 ここでは、ヘッダ情報と要求URL情報について説明します。

■ヘッダ情報

 HTTPリクエストのヘッダフィールドは「ヘッダ名:値」の形式になっています。

String getHeader(String name)
 
引数にヘッダ名を指定すると対応する値を戻り値で取得できます
Enumeration getHeaders(String name) 引数にヘッダ名を指定すると対応するすべての値をString型でEnumerationに格納して戻り値で取得できます
Enumeration getHeaderNames() 送信されたヘッダ名の一覧をString型でEnumerationに格納して戻り値で取得できます

■要求URL情報

 以下のようなコードをサービス処理に記述したとします。

PrintWriter out = resp.getWriter();
out.println("<HTML><BODY>");
out.println("getContextPath() : " + req.getContextPath() +"<BR>");
out.println("getServletPath() : " + req.getServletPath() +"<BR>");
out.println("getRequestURI() : " + req.getRequestURI() +"<BR>");
out.println("getRequestURL() : " + req.getRequestURL() +"<BR>");
out.println("</BODY></HTML>");

 http://localhost/j2ee/DisplayPathServletとブラウザからアクセスした場合、その出力結果は、次のようになります。

getContextPath() : /j2ee
getServletPath() : /DisplayPathServlet
getRequestURI() : /j2ee/DisplayPathServlet
getRequestURL() : http://localhost/j2ee/DisplayPathServlet

 それぞれの内容は以下のとおりです。

getContextPath() コンテキストルートの取得
getServletPath() サーブレット名の取得
getRequestURI() コンテキストルート+サーブレット名の取得
getRequestURL() クライアントが要求したURLの取得

POINT
HTTP要求メソッドを取得するための getMethod()というメソッドもあります。

KEYWORD
HTTPパラメータ
クライアントから送信される付加的なデータで、GET要求の場合にはURLの一部として送信され、POST要求の場合はHTTPリクエストのボディに格納されます。

   ワンポイントQuestionの解答

正解 A

Java2ラーニングブック −Web Component Developer編−

本記事は@ITハイブックスシリーズ「J2EEラーニングブック −Web Component Developer編−」(技術評論社)から、一部の内容を編集し転載したものです。本書の詳細は「@ITハイブックス」サイトでご覧いただけます。

 

Javaプログラミング・ワンポイントレクチャー INDEX





Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間