• 入门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 }
  • 相关阅读:
    前端页面适配的rem换算
    Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法
    ES5, ES6, ES2016, ES.Next: What's going on with JavaScript versioning?
    国内的Android SDK镜像
    虚拟串口VSPD破解版 亲测win10 64可用
    Mybatis : "less than" issue in Select annotations
    如何在MyBatis中优雅的使用枚举
    Adding a custom jar as a maven dependency
    Error: Invalid or corrupt jarfile
    使用Json让Java和C#沟通的方法
  • 原文地址:https://www.cnblogs.com/flypig666/p/11480420.html
Copyright © 2020-2023  润新知