入門servlet:request獲取請求參數通用方式


一、獲取請求參數通用方式

1. String getParameter(String name):根據參數名稱獲取參數值 例:username=flypig&password=2343

2. String[] getParameterValues(String name):根據參數名稱獲取參數值的數組  例:hooby=xx&hobby=name

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

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

 1 @WebServlet("/RequestDemo6")
 2 public class RequestDemo6 extends HttpServlet {
 3     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 4         //post 獲取請求參數
 5 
 6         //根據參數名稱獲取參數值
 7         String username = request.getParameter("username");
 8 //        System.out.println("post");
 9 //        System.out.println(username);
10 
11         //根據參數名稱獲取參數值的數組
12         String[] hobbies = request.getParameterValues("hobby");
13 //        for (String hobby : hobbies) {
14 //            System.out.println(hobby);
15 //        }
16 
17         //獲取所有請求的參數名稱
18 
19         Enumeration<String> parameterNames = request.getParameterNames();
20 //        while(parameterNames.hasMoreElements()){
21 //            String name = parameterNames.nextElement();
22 //            System.out.print(name+":");
23 //            String value = request.getParameter(name);
24 //            System.out.println(value);
25 //        }
26 
27         //獲取所有參數的map集合
28         Map<String, String[]> parameterMap = request.getParameterMap();
29         //遍歷
30         Set<String> keySet = parameterMap.keySet();
31         for (String name : keySet){
32 
33             //根據鍵獲取值
34             String[] values = parameterMap.get(name);
35             System.out.println(name);
36             for (String value : values) {
37                 System.out.println(value);
38             }
39             System.out.println("--------------");
40         }
41 
42 
43     }
44 
45     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
46         //get獲取請求參數
47 
48         //根據參數名稱獲取參數值
49 //        String username = request.getParameter("username");
50 //        System.out.println("get");
51 //        System.out.println(username);
52 
53         this.doPost(request,response);
54     }
55 }

 

二、解決亂碼問題

解決請求參數中文亂碼問題:

  * get方式:tomcat 8已經將get方式亂碼問題解決

  * post方式:會亂碼

    *解決:在獲取參數前,設置request的編碼request.setCharacterEncoding("utf-8")

 1 @WebServlet("/RequestDemo7")
 2 public class RequestDemo7 extends HttpServlet {
 3     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 4 
 5         //設置流的編碼
 6         request.setCharacterEncoding("utf-8");
 7 
 8         //post 獲取請求參數username
 9         String username = request.getParameter("username");
10         System.out.println(username);
11 
12     }
13 
14     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
15         //get獲取請求參數
16 
17         //根據參數名稱獲取參數值
18 //        String username = request.getParameter("username");
19 //        System.out.println("get");
20 //        System.out.println(username);
21 
22         this.doPost(request,response);
23     }
24 }

 


免責聲明!

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



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