一、獲取請求參數通用方式
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 }