リクエスト情報の取得(HttpServletRequest)

「リクエスト情報の取得(HttpServletRequest)」の編集履歴(バックアップ)一覧はこちら

リクエスト情報の取得(HttpServletRequest)」(2009/02/22 (日) 23:00:42) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*&bold(){リクエストパラメータの取得(getParameter)} |getParameterメソッド|値の中の最初のものだけを取得| |getParameterValuesメソッド|全ての値を取得| -getParameterメソッド String val = request.getParameter("name"); -getParameterValuesメソッド String vals[] = request.getParameterValues("name"); if (vals != null){ for (int i = 0 ; i < vals.length ; i++){ out.println(vals[i]); } } 送られてきていない名前を指定して値を取得しようとすると、値はnullとなる。 取得できる値は全てString型のため、必要があれば数値型に変換が必要。 |URL|http://localhost:8080/sample/formsample1.html &br() http://localhost:8080/sample/RequestSample1| |アプリケーション配置場所|c:\servlet-sample\sample\| |web.xmlファイル|c:\servlet-sample\sample\WEB-INF\web.xml| |コンテキストファイル|C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost\sample.xml| GETメソッドの場合は「doGet」メソッドに、POSTメソッドの場合は「doPost」メソッドに記述する。 *&bold(){日本語パラメータの対応(getBytes)} 1.文字列をバイト列に戻す String val = request.getParameter("name"); try { byte[] byteData = val.getBytes("ISO_8859_1"); // デフォルトのISO-8859-1を変換する }catch(UnsupportedEncodingException e){ System.out.println(e); } 2.バイト列から文字列を作成する 基本的にブラウザはフォームが含まれるHTMLページの文字コードを使ってエンコードを行う。 String val = request.getParameter("name"); try { byte[] byteData = val.getBytes("ISO_8859_1"); val = new String(byteData, "Shift_JIS"); }catch(UnsupportedEncodingException e){ System.out.println(e); } |URL|http://localhost:8080/sample/formsample2.html &br() http://localhost:8080/sample/RequestSample2| *&bold(){日本語パラメータの対応(setCharacterEncoding)} POSTメソッドでは使えるがGETメソッドでは使えない。 *&bold(){パラメータ名の取得(getParameterNames)} Enumeration names = request.getParameterNames(); while (names.hasMoreElements()){ String name = (String)names.nextElement(); } |URL|http://localhost:8080/sample/formsample4.html &br() http://localhost:8080/sample/RequestSample4| *&bold(){リクエストURIの取得(getRequestURI)} |getRequestURL|URL形式で取得。戻り値がStringBufferクラスのオブジェクトになっているため注意が必要。 &br() (http://localhost:8080/sample/RequestSample5)| |getRequestURI|リクエストに含まれるポート番号とパラメータの間の部分を取得。つまりコンテキストパス+サーブレットパスの部分。 &br() (/sample/RequestSample5)| |getServletPath|サーブレットパスの部分だけを取得。 &br() (/RequestSample5)| |URL|http://localhost:8080/sample/RequestSample5| *&bold(){リクエスト方法の取得(getScheme)} |getScheme|リクエストのスキームを取得。例えばHTTP又はHTTPSなどが取得できるのでSSL通信が行われているかどうかの判別に利用。| |getProtocol|HTTPであれば「HTTP/1.0」や「HTTP/1.1」などのようにプロトコルとプロトコルバージョンが取得出来る。「HTTP/1.1」の場合だけ行いたい処理がある時などに利用。| |getMethod|「GET」や「POST」などのHTTPメソッド名が取得る。 | sb.append("getScheme:"); sb.append(request.getScheme()); sb.append("getProtocol:"); sb.append(request.getProtocol()); sb.append("getMethod:"); sb.append(request.getMethod()); *&bold(){ヘッダーの名前の取得(getHeaderNames)} &italic(){次回はここから http://www.javadrive.jp/servlet/request/index8.html}
*&bold(){リクエストパラメータの取得(getParameter)} |getParameterメソッド|値の中の最初のものだけを取得| |getParameterValuesメソッド|全ての値を取得| -getParameterメソッド String val = request.getParameter("name"); -getParameterValuesメソッド String vals[] = request.getParameterValues("name"); if (vals != null){ for (int i = 0 ; i < vals.length ; i++){ out.println(vals[i]); } } 送られてきていない名前を指定して値を取得しようとすると、値はnullとなる。 取得できる値は全てString型のため、必要があれば数値型に変換が必要。 |URL|http://localhost:8080/sample/formsample1.html &br() http://localhost:8080/sample/RequestSample1| |アプリケーション配置場所|c:\servlet-sample\sample\| |web.xmlファイル|c:\servlet-sample\sample\WEB-INF\web.xml| |コンテキストファイル|C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost\sample.xml| GETメソッドの場合は「doGet」メソッドに、POSTメソッドの場合は「doPost」メソッドに記述する。 *&bold(){日本語パラメータの対応(getBytes)} 1.文字列をバイト列に戻す String val = request.getParameter("name"); try { byte[] byteData = val.getBytes("ISO_8859_1"); // デフォルトのISO-8859-1を変換する }catch(UnsupportedEncodingException e){ System.out.println(e); } 2.バイト列から文字列を作成する 基本的にブラウザはフォームが含まれるHTMLページの文字コードを使ってエンコードを行う。 String val = request.getParameter("name"); try { byte[] byteData = val.getBytes("ISO_8859_1"); val = new String(byteData, "Shift_JIS"); }catch(UnsupportedEncodingException e){ System.out.println(e); } |URL|http://localhost:8080/sample/formsample2.html &br() http://localhost:8080/sample/RequestSample2| *&bold(){日本語パラメータの対応(setCharacterEncoding)} POSTメソッドでは使えるがGETメソッドでは使えない。 *&bold(){パラメータ名の取得(getParameterNames)} Enumeration names = request.getParameterNames(); while (names.hasMoreElements()){ String name = (String)names.nextElement(); } |URL|http://localhost:8080/sample/formsample4.html &br() http://localhost:8080/sample/RequestSample4| *&bold(){リクエストURIの取得(getRequestURI)} |getRequestURL|URL形式で取得。戻り値がStringBufferクラスのオブジェクトになっているため注意が必要。 &br() (http://localhost:8080/sample/RequestSample5)| |getRequestURI|リクエストに含まれるポート番号とパラメータの間の部分を取得。つまりコンテキストパス+サーブレットパスの部分。 &br() (/sample/RequestSample5)| |getServletPath|サーブレットパスの部分だけを取得。 &br() (/RequestSample5)| |URL|http://localhost:8080/sample/RequestSample5| *&bold(){リクエスト方法の取得(getScheme)} |getScheme|リクエストのスキームを取得。例えばHTTP又はHTTPSなどが取得できるのでSSL通信が行われているかどうかの判別に利用。| |getProtocol|HTTPであれば「HTTP/1.0」や「HTTP/1.1」などのようにプロトコルとプロトコルバージョンが取得出来る。「HTTP/1.1」の場合だけ行いたい処理がある時などに利用。| |getMethod|「GET」や「POST」などのHTTPメソッド名が取得る。 | sb.append("getScheme:"); sb.append(request.getScheme()); sb.append("getProtocol:"); sb.append(request.getProtocol()); sb.append("getMethod:"); sb.append(request.getMethod()); *&bold(){ヘッダーの名前の取得(getHeaderNames)} ヘッダの名前を取得するには「HttpServletRequest」インターフェースで定義されている「getHeaderNames」メソッドを使用。 *&bold(){ヘッダーの値の取得(getHeader)} ヘッダの値を取得するには「HttpServletRequest」インターフェースで定義されている「getHeader」メソッドを使用。 ヘッダーによっては値が1つではなく複数ある場合があります。全ての値を取得するためのメソッドとして「getHeaders」メソッドを使用。

表示オプション

横に並べて表示:
変化行の前後のみ表示: