リクエストのHTTPリクエスト

リクエストの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 
直接のアドレスバーに

 

おすすめ

転載: www.cnblogs.com/hejh/p/11004171.html