リクエストのHTTPリクエスト
リクエスト:リクエスト アクション:取得ブラウザは、データ上に送信 部: 要求ヘッダリクエストボディの要求ライン 操作要求ライン 形式: リクエストモード要求リソースプロトコル / バージョン の一般的な方法:のHttpServletRequestの マスタ ストリングgetMethod()メソッド:リクエストメソッド取得 ストリングgetRemoteAddr()を:IPアドレス取得 )(文字列getContextPathは:(Javaでのプロジェクト名を取得します / Day10) :理解 getRequestURI():前のパラメータの内容にプロジェクト名から取得 / Day10 / REGIST の買収の合意に完全:getRequestURL()パスのHTTP:// localhost /をfastMacedonia Day10 / REGIST 文字列getQueryString():リクエストのすべてのパラメータのユーザ名=トム&パスワードは123 = GET 文字列getProtocol():プロトコルおよびバージョンを取得します たとえば:リクエストライン GET / Day10 /行ユーザー名&パスワード=トム= 123 HTTP / 1.1?
ケース:リクエストヘッダ方法
<?xml version = "1.0"エンコード= "UTF-8"?> の<web-appののxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance"のxmlns = "のhttp://のxmlns .jcp.org / XML / NS / JavaEEの"XSI:のschemaLocation =" http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1 .xsd」ID = "WebApp_ID"バージョン= "3.1"> の<servlet> <サーブレット名> RowServlet </サーブレット名> <servlet- クラス > com.hjh.servlet.request.RowServlet </ servlet- クラス > < /サーブレット> <サーブレットマッピング> の<servlet-name>のRowServlet </サーブレット名> の<url-pattern> /行</ URLパターン> </サーブレットマッピング> </ web-app>の
パッケージcom.hjh.servlet.request。 インポートにjava.io.IOException; 輸入javax.servlet.ServletException; 輸入javax.servlet.http.HttpServlet。 インポートのjavax.servlet.http.HttpServletRequest; インポートのjavax.servlet.http.HttpServletResponse; パブリック クラス RowServletは延びHttpServletを{ プライベート 静的 最終 長いのserialVersionUID = 1Lを、 保護された ボイドのdoGet(HttpServletRequestのリクエスト、HttpServletResponseの応答)がスローServletExceptionが、IOExceptionが{ // 获取请求方式 メソッド=文字列request.getMethod(); System.out.printlnは( "リクエストメソッド:" + メソッド); // 取得要求リソースの 文字列URI = Request.getRequestURI(); 文字列のURL = 。Request.getRequestURL()のtoString() ; System.out.printlnは( "URI:" URI + + "" + "URL:" + URL); // 取得リクエストパラメータ文字列の 文字列のクエリ= request.getQueryString(); System.out.printlnは(「リクエストパラメータ文字列: "+ クエリ); // プロトコルバージョン取得 文字列=プロトコルrequest.getProtocolを(); System.out.printlnは( "プロトコルバージョンを: "+ プロトコル)。 System.out.println(「--------------------------- ------------以下は重要な方法であります---------------- " ); // IP要求を取得 =文字列addrのrequest.getRemoteAddr(); System.out.printlnは( "要求IP:「+ ADDR); // 項目名が取得 ストリングのcontextPath = request.getContextPath(); のSystem.out.println( "プロジェクト名:" + のcontextPathは); } 保護された ボイドのdoPost(HttpServletRequestのリクエスト、HttpServletResponseの応答)スローServletExceptionがは、IOException { doGetメソッド(リクエスト、レスポンス)。 } }
プロジェクトを開始し、ブラウザがURLは「http:// localhostを:? 8080 /サーブレット/行名= HJH&パスワード= 12345」と入力し、キャリッジリターンを、コンソール出力を日食です。
要求モード:GET URIを:サーブレット/行のURL /:HTTP:// localhostを:8080 /サーブレット/行 リクエストパラメータ文字列:ユーザー名= HJH&パスワード= 12345 プロトコルバージョン:HTTPの /1.1 ----------- ----------------以下は重要な方法----------------------------ある 要求IP : 0:0:0:0:0:0:0:1つの プロジェクト名: /サーブレット
操作要求ヘッダ フォーマット:キー / 値(値が複数の値であってもよい) の一般的な方法: ★のgetHeaderストリング(文字列キー)キーで指定された値(A)を取得 理解する: 列挙getHeaders(文字列名)によって指定されたキーを取得します値(より多くの) 列挙getHeaderNamesは():リクエストヘッダの全ての名前を取得します int型のgetIntHeader(文字列キーを):int型のリクエストヘッダを取得します ロングリクエストヘッダの取得時間:getDateHeader(文字列キー) 重要なリクエストヘッダ: ユーザー - エージェント:FirefoxのChromeブラウザカーネルMSIE リファラー:そこからセキュリティチェーンへのページ
ケース:リクエストヘッダ
<サーブレット> の<servlet-name>のHeaderServlet </サーブレット名> <servlet- クラス > com.hjh.servlet.request.HeaderServlet </ servlet- クラス > </サーブレット> <サーブレットマッピング> の<servlet-name>のHeaderServlet </サーブレット名> の<url-pattern> /ヘッダ</ URLパターン> </サーブレットマッピング>
パッケージcom.hjh.servlet.request。 インポートにjava.io.IOException; 輸入javax.servlet.ServletException; 輸入javax.servlet.http.HttpServlet。 インポートのjavax.servlet.http.HttpServletRequest; インポートのjavax.servlet.http.HttpServletResponse; パブリック クラス HeaderServletは延びHttpServletを{ プライベート 静的 最終 長いのserialVersionUID = 1Lを、 保護された ボイドのdoGet(HttpServletRequestのリクエスト、HttpServletResponseの応答)スローServletExceptionが、IOExceptionが{ // 获取浏览器内核 USER_AGENT request.getHeader =文字列( "のUser-Agent" ); System.out.printlnは( "ブラウザカーネル:" + user_agentの); // リファラー取得 文字列を=リファラーrequest.getHeader( "リファラー" ); IF(リファラー= = NULL ){ するSystem.out.println( "アドレスバーに直接入力" ); } そう IF(referer.contains( "ローカルホスト" )){ するSystem.out.println( "ネイティブ入力" ); } そう IF(referer.contains( "192.167.23.156" )){ System.out.printlnは( "その他" ); } 他{ するSystem.out.println( "兄弟、盗链可耻" )。 } } 保護された ボイドのdoPost(HttpServletRequestのリクエスト、HttpServletResponseの応答)がスローServletExceptionがは、IOException { doGetメソッド(要求、応答)。 } }
URLにhttp:// localhost:8080 /サーブレット/ヘッダ
コンソール
ブラウザカーネル:Mozillaの/ 5.0(Windows NTの6.1 ; Win64の、x64の)のAppleWebKit / 537.36(KHTML、ヤモリなど)クローム/ 58.0.3029.96サファリ/ 537.36
直接のアドレスバーに