Java之Request篇


request對象

  request對象是來獲取請求消息數據

    1. 獲取請求行數據

      GET /test/demo1?name=xiaobai HTTP/1.1

      獲取請求方式:String getMethod();  GET

     ***** 獲取虛擬目錄:string getContextPath();  /test

      獲取Servlet路徑:String getServletPath();  /demo1

      獲取get方式請求參數:String getQueryString();   name=xiaobai 

     ***** 獲取請求URI:

        String getRequestURI();URI:統一資源標識符  /test/demo1

        StringBuffer getRequestURL();URL:統一資源定位符    http://localhost/test/demo1

      獲取協議及版本:String getProtocol();  HTTP/1.1

      獲取客戶機的IP地址:String getRemoteAddr();  

    2. 獲取請求頭數據

     *** String getHeader(String name)  通過請求頭的名稱,來獲取  請求頭的值;

        防盜鏈:request.getHeader("referer");

      Enumeration<String>  getHeaderNames()  獲取所有的請求頭名稱

    3. 獲取請求體數據  

      請求體:只有POST請求方式才有請求體,在請求體中封裝了POST請求的請求參數

      獲取流對象:

        獲取字符輸入流,只能操作字符數據  BufferedReader getReader()

        獲取字節輸入流,可以操作所有類型數據  ServletInputStream getInputStream()

        BufferedReader br = request.getReader();

        string line = null;

        while((line = br.readLine()) != null){

          System.out.println(line);

        }

     4. 獲取請求參數通用方式:

      ****  String getParameter(String name)  根據參數名稱獲取參數值   

         String[] getParameterValues(String name)  根據參數名稱獲取參數值的數組

        Enumeration<String> getParameterNames()  獲取所有請求的參數名稱

      ****  Map<String,String[]> getParameterMap()  獲取所有參數的map集合

        5.解決中文亂碼:

      get方式:tomcat8以后已經將get亂碼解決了;

      post方式:在獲取參數前,設置request的編碼request.setCharacterEncoding("utf-8");

     6. 請求轉發:

      1. 通過request對象獲取請求轉發器對象:RequestDispatcher getRequestDispatcher(String path);

      2. 使用RequestDispatcher對象來進行轉發:forward(ServletRequest request, ServletResponse response) ;

      RequestDispatcher getRequestDispatcher(String path).forward(ServletRequest request, ServletResponse response) ;

      轉發特點:

        1 瀏覽器地址欄路徑不發生變化;

        2 只能轉發到當前服務器內部資源中;

        3 轉發是一次請求。

     7.共享數據:轉發前存儲數據到request獄中

      域對象:一個有作用范圍的對象,可以在范圍內共享數據;

      request域:代表一次請求的范圍,一般用於請求轉發的多個資源中共享數據;

       A: void setAttribute(String name,Object obj):存儲數據;

       B: Object getAttitude(String name):通過鍵獲取值;

          void removeAttribute(String name):通過鍵移除鍵值對

      8.獲取ServletContext

        ServletContext getServletContext();

 

    擴展

    成員變量:

    屬性:setter 和getter方法截取后的產物;

    java中BeanUtils 的方法

      setProperty()

      getProperty()

      populate(Object obj , Map map)  將map集合的鍵值對信息,封裝到對應的JavaBean對象中

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM