HttpServletRequestの
<%@ページ言語= "javaの" contentTypeの= "text / htmlの;のcharset = UTF-8" pageEncodingは = "UTF-8" %> <DOCTYPE用HTML PUBLIC「 - // W3C // DTD HTML 4.01移行// EN! " "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <META HTTP-当量=" Content-Typeの"コンテンツ=" text / htmlの;のcharset = UTF-8 "> ここ<タイトル>を挿入タイトル</ TITLE> </ HEAD> <BODY> <フォームアクション=" / WEB06 / LineServlet」メソッド= "GET"> の<input type = "text"の名= "ユーザ名"> <BR > の<input type = "パスワード"名前= "PWD"> <BR> <入力タイプ= "提出"値= "提交"> </ FORM> </ BODY> </ HTML> -------------------------- ---------- パッケージ com.oracle.demo01; インポートにjava.io.IOException; 輸入javax.servlet.ServletException; 輸入javax.servlet.http.HttpServlet。 インポートのjavax.servlet.http.HttpServletRequest; インポートのjavax.servlet.http.HttpServletResponse; パブリック クラス LineServletが延びているのHttpServletを{ 公共 ボイドのdoGet(HttpServletRequestのリクエスト、HttpServletResponseの応答)がスローServletExceptionがは、IOException { // 4通过要求获得请求行里面的信息 // 获取请求方式 文字列メソッド= request.getMethodを(); System.out.printlnは(+ "要求モードがある" )メソッド; // Get要求をURI 文字列URI = Request.getRequestURI(); System.out.printlnは( + "URLとして" URI); // URLを取得 StringBufferのURL = request.getRequestURLを(); System.out.println( + "のURLとして" のURL); //は、 WEBアプリケーション名を取得し た文字列名= request.getContextPathを(); System.out.printlnは( + "WEBアプリケーション名は" 名); // リクエストをゲット文字列のURLの後に 文字列のクエリ= request.getQueryString(); System.out.printlnは( "リクエストパラメータGET:" + クエリを)。 // クライアントのIPアドレスを取得する 文字列IP = request.getRemoteAddrを(); System.out.printlnは( "IPアドレス:" + IP); } パブリック 無効のdoPost(HttpServletRequestのリクエスト、HttpServletResponseの応答)がスローServletExceptionが、IOExceptionが{ doGetメソッドを(リクエスト、レスポンス); } }
要求取得要求ヘッダ
抗ホットリンクの役割は、Refererヘッダーを行います
<%@ページ言語= "javaの" contentTypeの= "text / htmlの;のcharset = UTF-8" pageEncodingは = "UTF-8" %> <DOCTYPE用HTML PUBLIC「 - // W3C // DTD HTML 4.01移行// EN! " "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <META HTTP-当量=" Content-Typeの"コンテンツ=" text / htmlの;のcharset = UTF-8 「> <タイトル>ここで挿入タイトル</ TITLE> </ HEAD> <BODY> <! -防盗链- > <a href="/WEB06/RefereServlet">宋仲基和宋慧乔分手了する</a> < / BODY> </ HTML> -------------------------------- パッケージcom.oracle.demo01。 // の抗ホットリンク要求によって、インポートにjava.io.IOException; インポートjavax.servlet.ServletException。 輸入javax.servlet.http.HttpServlet。 インポートのjavax.servlet.http.HttpServletRequest; インポートのjavax.servlet.http.HttpServletResponse; パブリック クラス RefereServletが延びているのHttpServletは{ 公共 ボイドのdoGet(HttpServletRequestのリクエスト、HttpServletResponseの応答)がスローServletExceptionがのは、IOException { // 获取REFERE头 文字列REFERE = request.getHeader( "リファラー" )。 文字列の内容 = nullを。 // 判断是否以谁开头必须加上ます。http:// もし(refere.startsWith( "のhttp:// localhostを:8080")){ 内容は = "本当に離婚!" ; } 他{ コンテンツは = "あなたは泥棒です" ; } // 中国の文字化け応答解決 response.setContentType( "テキスト/ HTMLを;のcharset = UTF-8" ); 応答.getWriter()ライト(コンテンツ);. } 公共 ボイドのdoPost(HttpServletRequestのリクエスト、HttpServletResponseの応答)がスローServletExceptionがは、IOException { doGetメソッド(リクエスト、レスポンス); } }
リクエスト本体を通って要求を取得
上記のパラメータには、例えば、どのような方法によって、リクエストパラメータへのアクセス:
文字列
のgetParameter(
文字列 name)
文字列[]
getParameterValues(
文字列 name)
<%@ページ言語= "javaの" contentTypeの= "text / htmlの;のcharset = UTF-8" pageEncodingは = "UTF-8" %> <DOCTYPE用HTML PUBLIC「 - // W3C // DTD HTML 4.01移行// EN! " "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <META HTTP-当量=" Content-Typeの"コンテンツ=" text / htmlの;のcharset = UTF-8 "> ここ<タイトル>を挿入タイトル</ TITLE> </ HEAD> <BODY> <フォームアクション=" / WEB06 / BodyServlet」メソッド= "ポスト"> の<input type = "text"の名= "ユーザ名"> <入力タイプ=「ラジオ」の名前は=「セックス」値=「女」>女 の<input type = "ラジオ"名前= "性別"値= "男"> 男 <BR> の<input type = "チェックボックス"名前= "趣味"値= "PQQ"> 乒乓球 <input type = "チェックボックス"名前= "趣味"値= "PQ"> 皮球 の<input type = "チェックボックス"名前= "趣味"値= "WQ"> 网球 <BR> の<input type = "提出"値= "提交"> </ FORM> </ BODY> </ HTML> ---------------------------------- ---------- パッケージcom.oracle.demo01。 // 要求获得请求体的方法获得参数輸入にjava.io.IOException; 輸入java.util.Map; 輸入java.util.Set; 輸入javax.servlet.ServletException; 輸入javax.servlet.http.HttpServlet。 インポートのjavax.servlet.http.HttpServletRequest; インポート javax.servlet.http.HttpServletResponseの; インポートjavax.swing.plaf.synth.SynthSeparatorUI; パブリック クラス BodyServlet 拡張HttpServletを{ 公共 空のdoGet(HttpServletRequestのリクエスト、HttpServletResponseの応答)がスローServletExceptionが、にIOExceptionが{ // POSTリクエストは、中国の文字化けを解決するための対処リクエストボディの歪みである Request.setCharacterEncoding(「UTF-8」); // リクエストパラメータ取得 // 1.パラメータ値は、単一のメソッドのgetParameter取得するために使用される単一の値を取得 。文字列名=要求のgetParameter(「ユーザ名を」);
// GETの提出は、ごみを解決します
=新しい新しいString名(name.getBytes( "ISO-8859-1")、 "UTF-8"); 文字列セックス = request.getParameter( "セックス"); System.out.printlnは(名前 + "..." +セックスに); // 2は、複数の値求める 文字列[] =のhobbys要求を。 getParameterValues( "趣味"); // 反復 のために(文字列S:hobbys){ System.out.printlnは(S); } // 。3すべてのリクエストパラメータ地図ゲット 地図<文字列、文字列[]> =地図の要求を。getParameterMap(); // 反復 セットの<文字列> SETを= map.keySet(); にとって(文字列str:セット){ String []型値 = map.get(STR)。 用(文字列V:値){ System.out.printlnは(STR + "..." + V)。 } } } 公共 ボイドのdoPost(HttpServletRequestのリクエスト、HttpServletResponseの応答)がスローServletExceptionがは、IOException { doGetメソッド(要求、応答)。 } }
解決ポスト提出中国の文字化け:request.setCharacterEncoding( "UTF-8" );
解決します文字化け提出:パラメータ=新しい文字列(parameter.getbytes( "ISO8859-1")、 "UTF-8");
ほとんどの人はこれを気にしないだろう