一、获取请求参数通用方式
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 }
原文:https://www.cnblogs.com/flypig666/p/11480420.html