獲取請求體數據 POST


  • POST獲取請求體
    1.   請求體中封裝了 POST請求的請求參數
    2.   獲取流對象 再從流對象中那數據 一種字節流 一種字符流
    3.   BufferedReader getReader()獲取字符輸入流 只能操作字符
      1.    ServletInputStream  getInputStream(); 獲取字節輸入流 可以操作所有類型數據
  1. 獲取請求參數通用方式
    1.   String getParameter(String name); 根據參數名稱獲取參數值 username=zs&password=13
    2.   String getParameterValues(String name);根據參數名稱獲取參數數組 hobby=ss&&hobby=sdad
    3.   Enumeration<String> getHeaderNames();  后去所有的請求的名稱
    4.   Map<String,String[]>getParameterMap(); 獲取所有的參數的Map集合
  •  request請求轉發 是一中服務器內部資源跳轉的方式 
  • request.getRequestDispatcher("...").forward(request,response);
  • 特點 瀏覽器地址欄路徑不發生變化
  • 只能轉發到當前服務器內部資源中
  • 轉發是一次請求

 

  • 數據共享
    •   域對象:一個有作用范圍的對象,在范圍內可以共享數據
    • request域:代表一次請求的范圍,一般用於請求轉發的多個資源共享數據
  1. Servlet之間數據通信 
  •   setAttribute(String name ,Object obj):存儲數據
  •        getAttitube(String name):通過鍵獲取值
  •   removeAttribute(String name);通過鍵移除鍵直對

 

  • 獲取ServletContext
  1. ServletContext getServletContext();

 

  • 對最后一個方法舉例
  •     Map<String, String[]> parameterMap = request.getParameterMap();

    Set<String> keySet = parameterMap.keySet();//獲取Keyset字符串數組

    for (String name : keySet) {//循環Keyset

    System.out.println(name); //輸出鍵名稱

    String[] values = parameterMap.get(name);

    for (String value : values) {

    System.out.println(value);//輸出鍵值數組
    }
    System.out.println("--------");

    }

    }

  

  • GET和POST中文亂碼問題  設置流的編碼 request.setCharacterEncoding("utf-8"); 即可解決  get不會亂碼 post 使用中文 要注意

 

    注冊實例 

<form action="/reDemo5" method="post">
<input type="text" placeholder="in" name="username"><br>
<input type="password" placeholder="out" name="password"><br>
<input type="submit" value="resgist">
</form>

    BufferedReader br = request.getReader();
String line = null;
while ((line=br.readLine())!=null){
System.out.println(line);

}
}



 


免責聲明!

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



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