HttpServletRequestの取得要求は、要求ライン、リクエストヘッダと要求体である。盗難防止チェーンは、アドレスを取得するために、この方法によって提供されてもよいです。方法は、ゴミを解決することに注意してください。
一、HttpServletRequestの:
HttpServletResponseの中で詳細な概要と操作手順!
第二に、HTTPリクエストを取得します:
第三に、取得要求ライン:
1、クライアントは仕方を要求します。
getMethod()メソッド文字列型が得られます。
2、要求されたリソースへのアクセス:
getContextPath()文字列のWebアプリケーション名(プロジェクト名)を取得します
getQueryString()は取得したURLアドレスの後に提出したパラメータ文字列を取得しました。
getRequestURI()はString型のURIアドレスを取得します。
getRequestURL()は、URLのタイプのStringBufferを取得します。
クライアントのIPアドレスへのアクセスを得るためにrequest.getRemoteAddr()クライアント
保護のdoGet(HttpServletRequestのリクエスト、HttpServletResponseの応答)を無効
ServletExceptionがは、IOException {スロー
//要求メソッド取得
ストリング方法request.getMethod =();
のSystem.out.println( "リクエストモードはある:" +方法);
// URIの取得要求
= Request.getRequestURI URI文字列();
System.out.printlnは(+ URI "URIに");
//リクエストURLを取得
するStringBuffer = request.getRequestURL URL();
System.out.printlnは( "URLのように:" + URL );
//のURIとして/ WEB / LineServlet
//のURLのようにします。http:// localhost:8080 / WEB / LineServlet
//取得するWEBプロジェクト名の
文字列名= request.getContextPath();
System.out.printlnは(「WEBプロジェクト名前: "+名前)。
//取得した文字列を取得リクエストURL
文字列のクエリ= request.getQueryString();
System.out.printlnは( "リクエストパラメータがあり得る:"クエリ+);
// IPアドレスの取得クライアントの
文字列IP =要求。 getRemoteAddr();
System.out.printlnは( "IPアドレス:" IP +);
}
第四に、取得要求ヘッダー:
getHeader(文字列名)
役割Refererヘッダ:ソースへのアクセスを得るには、抗ホットリンクを行います
保護されたボイドのdoGet(HttpServletRequestのリクエスト、HttpServletResponseの応答)
ServletExceptionがは、IOException {スロー
//获取REFERE头
文字列REFERE = request.getHeader( "リファラーを");
文字列の内容= NULL;
もし(refere.startsWith( "のhttp:// localhostを:8080")){
コンテンツ= "真的离婚了!";
}他{
コンテンツ= "你是小偷!"。
}
//解决乱码
response.setContentType( "テキスト/ HTML;のcharset = UTF-8");
response.getWriter()書き込み(コンテンツ)。
}
第五に、リクエストボディを取得します:
1のごみポスト提出解く:request.setCharacterEncoding( "UTF-8");
2は、ごみを解決する方法が提出されます:
パラメータ=新しい文字列(parameter.getbytes( "ISO8859-1")、 "UTF-8");
out.printlnを(S)。 }
// 3は、すべての要求がMAPパラメータ取得
地図<文字列、文字列[]> request.getParameterMapマップ=();
//反復
セットの<string> map.keySet SET =();
(文字列STR:SET)についての{
文字列[] = map.get(STR)のような値;
(文字列V:値)のための{
のSystem.out.println(STR + "..." + V);
}
}
六は、追加機能を要求します。
1、要求はドメインオブジェクトですが、また次の機能があります。
setAttributeメソッド(文字列名、オブジェクトo)
getAttribute(文字列名)
removeAttribute(文字列名)
図2は、終了要求の転送を要求します。
要求フォワーダー----パス転送アドレスを取得します。
するRequestDispatcher getRequestDispatcher(文字列のパス)
オブジェクトを転送することによって転送
requestDispathcer.forward(ServletRequestの要求、ServletResponseを応答)
七、のServletContextドメインと比較ライフサイクル要求のドメイン:
1、のServletContext:
作成:サーバの起動
破壊:サーバがクローズ
ドメインスコープ:Webアプリケーション全体
2、要求:
作成:アクセスへの要求を作成します。
破壊:破壊に応じて、リクエストの終了
スコープドメイン:リクエスト
八、転送とリダイレクトの違い:
1、2つのリダイレクション要求、要求を転送します
2、アドレスリダイレクションアドレスバーの変更、同じ転送アドレス
図3は、アクセスできる外部のWebサイトでは、転送は、内部リソースにアクセスすることができますリダイレクト
図4に示すように、転送性能がリダイレクトする優れています
(テープServlet01 Servlet02への最初のデータによって、要求転送帯域データが必要とするとき!でアドレス遷移をリダイレクトする必要があります)
パブリッククラスServlet01はHttpServletを拡張{
保護された空のdoGet(HttpServletRequestのリクエスト、HttpServletResponseの応答)ServletExceptionが、IOExceptionがスロー{
//向要求域中存值
request.setAttribute( "名前"、 "张三");
//请求转发
request.getRequestDispatcher( "/ Servlet02")フォワード(リクエスト、レスポンス)。
}
パブリッククラスServlet02はHttpServletを拡張{
公共ボイドのdoGet(HttpServletRequestのリクエスト、HttpServletResponseの応答)ServletExceptionがは、IOException {スロー
//从要求域中取值
文字列名=(文字列)request.getAttribute( "名")。
//解决中文乱码
response.setContentType( "テキスト/ HTML;のcharset = UTF-8");
。response.getWriter()( "こんにちは" + name)を書きます。
}