HttpServletRequestオブジェクト
すべての情報は、HttpServletRequestオブジェクトによって要求され、クライアントアクセスサーバーの時間で得ることができます
- クライアントに関する情報を入手
- getRequestURL:完全なURLクライアントを返すように要求を行います
- getRequestURI:リソース要求された名前の列の一部の名前を返します。
- getQueryStringは:リクエストパラメータのセクションを返します。
- getRemoteAddr:クライアントの要求のIPアドレスを返します。
- ......
文字列requestURL = request.getRequestURL。 文字列requestURI = request.getRequestURI。 文字列のqueryString = request.getQueryString。 文字列IP = getRemoteAddr。
- クライアントのリクエストヘッダを取得
- getHeader(文字列名); Stringを返します。
- getHeaders(文字列名);列挙に戻ります。
- getHeaderNames();列挙に戻り、全てのリクエストヘッダを返します。
PrintWriter アウト = response.getWriter()。 Enumertionの<string> reqHeadInfos = request.getHeaderNames()。 一方、(reqHeadInfos.hasMoreElements()){ 文字列名 = reqHeadInfos.nextElement()。 文字列値 = request.getHeader(名); アウト .WRITE(名+ " :" + 値)。 }
- クライアントによって送信されたデータを取得します
- getParameter(ストリング名);
- getParameterValues(ストリング名);
- getParameterMap();を調製するための一般的フレームワーク。
情報フォーム:
<フォームアクション= " XXX "メソッド= " ポスト" > の<input type = " テキスト"名前= " USERID " MAXLENGTH = " 2 " > <BR> の<input type = " チェックボックス" NAME = " 趣味"値= " 唱歌" > 唱歌 の<input type = " チェックボックス"名前= " 趣味"=値「ダンス」 > ダンス <input type = " チェックボックス"名前= " 趣味"値= " ラップ" > ラップ の<input type = " チェックボックス"名前= " 趣味"値= " 打篮球" > 打篮球 <BR>
要求が提出したデータを取得するためにxxxjavaファイルに提出:
PrintWriter アウト = response.getWriter()。 文字列名 = request.getParameter(" 名前" ); 文字列[] hobbysの =のrequest.getParameterValues(" 趣味" )。 文字列hobbyStr = "" ; 以下のために(int型 i = 0 ; hobbysを=!ヌル && I <hobbys.length; iは++ ){ 場合(I = hobbys.length- 1 ){ hobbyStr + = hobbys [I]。 } 他{ hobbyStr+ = hobbys [I] + " " 。 } } アウト .WRITE(" NAME = " + 名)。 アウト .WRITE(" hobbys = " + hobbyStr)。
文字化けの問題を受信するためのリクエストフォーム
- フォームを送信するPOST
その理由は、文字化けやクライアントサーバ通信をコーディング矛盾して、サーバは、継承のsetCharacterEncoding(文字セット)をインターフェースすることができる方法は、符号化の設定を統一するのServletRequest伝わってきます。
Unicodeは、最初のデータを取得する前に設定します。
request.setCharacterEncoding(" UTF-8 ");
- フォームを送信するためにGET
でもUnicodeが、不明な理由で、文字化けします提出するフォームをGET、リクエストオブジェクトはゴミ問題を解決するために、データを受信するISO8859-1文字エンコーディングされ、要求オブジェクトは、最初のISO8859-1文字エンコーディングの受信に取得する必要があります次いで、データ・バイトのアレイ、及び「UTF-8」を指定するには、エンコードされた文字列を再構成します。
PrintWriter アウト = response.getWriter()。 文字列名 = request.getparameter(" 名前" ); 名前 = 新しい文字列(name.getBytes(" ISO8859-1 ")、" UTF-8 " ); アウト .WRITE(" 名前= " +名)。
Requestオブジェクトは、転送を実装します
我々はのServletContextを経由して転送を達成することを学んだ前に:
= ReqDispatcherするRequestDispatcher この .getServletContext()getRequestDispatcher(" / XXX / XXX "); // するRequestDispatcherオブジェクトはここで返さもgetRequestDispatcher要求オブジェクト()メソッドを介して直接取得すること reqDispatcher.forward(リクエスト、レスポンス); // その後転送要求転送方法によって達成
次のようにこのようにRequestオブジェクトによって転送達成:
request.getRequestDispatcher(" / XXX / XXX ")の.forward(リクエスト、レスポンス)。