java_初年度_JavaWeb(5)

HttpServletRequestオブジェクト

すべての情報は、HttpServletRequestオブジェクトによって要求され、クライアントアクセスサーバーの時間で得ることができます

  • クライアントに関する情報を入手
  1. getRequestURL:完全なURLクライアントを返すように要求を行います
  2. getRequestURI:リソース要求された名前の列の一部の名前を返します。
  3. getQueryStringは:リクエストパラメータのセクションを返します。
  4. getRemoteAddr:クライアントの要求のIPアドレスを返します。
  5. ......
文字列requestURL = request.getRequestURL。
文字列requestURI = request.getRequestURI。
文字列のqueryString = request.getQueryString。
文字列IP = getRemoteAddr。
  • クライアントのリクエストヘッダを取得
  1. getHeader(文字列名); Stringを返します。
  2. getHeaders(文字列名);列挙に戻ります。
  3. getHeaderNames();列挙に戻り、全てのリクエストヘッダを返します。
PrintWriter アウト = response.getWriter()。
Enumertionの<string> reqHeadInfos = request.getHeaderNames()。
一方、(reqHeadInfos.hasMoreElements()){ 
    文字列名 = reqHeadInfos.nextElement()。
    文字列値 = request.getHeader(名);
    アウト .WRITE(名+ " " + 値)。
}    
  • クライアントによって送信されたデータを取得します
  1. getParameter(ストリング名);
  2. getParameterValues(ストリング名);
  3. 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(リクエスト、レスポンス)。

 

おすすめ

転載: www.cnblogs.com/lzj-learn/p/11611678.html