HttpServletRequestのリクエストのジャワの基礎

   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)を書きます。
    }

おすすめ

転載: www.linuxidc.com/Linux/2019-07/159676.htm