欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

无论GET还是POST都可以用通用方式获取请求参数

程序员文章站 2023-12-27 10:10:57
...

获取请求参数通用方式
不论get还是post都能用
1.String getParameter(String name):根据参数名称获取参数值
username = xxx & password = 123
小例子:

rotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取请求参数 POST
        //根据名请求参数称获取请求参数值
        String username = request.getParameter("username");
        System.out.println("post");
        System.out.println(username);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取请求参数 GET
        //String username = req.getParameter("username");
        //System.out.println("get");
        //System.out.println(username);
        this.doPost(request,response);
    }

控制台输出
无论GET还是POST都可以用通用方式获取请求参数

2.String getParameterValues(String name):根据参数名称获取参数值的数组
html

		<input type="checkbox" name="hobby" value="study">学习
        <input type="checkbox" name="hobby" value="game"> 游戏

servlet

		String username = request.getParameter("username");
        //根据参数名称获取参数值的数组
        String[] hobbies = request.getParameterValues("hobby");
        for(String hobby : hobbies){
            System.out.println(hobby);

控制台输出
无论GET还是POST都可以用通用方式获取请求参数

hobby = study & hobby = game等多用于复选框
3.Enumeration String getParameterNames():获取所有请求的参数名称

//获取所有请求参数名称
        Enumeration<String> parameterNames = request.getParameterNames();
        while (parameterNames.hasMoreElements()){
            String name = parameterNames.nextElement();
            System.out.println(name);
            String value = request.getParameter(name);
            System.out.println(value);
            System.out.println("-------------");
        }

控制台输出(注:hobby没有全部输出,因为getparameter只能获取一个值
无论GET还是POST都可以用通用方式获取请求参数
4.Map<String , String[]> getParameterMap():获取所有参数Map键值对的集合

//获取所有参数的map集合
        Map<String, String[]> parameterMap = request.getParameterMap();
        //map遍历
        Set<String> keyset = parameterMap.keySet();
        for(String name : keyset){
            //根据name键获取值
            String[] values = parameterMap.get(name);
            System.out.println(name);
            for (String value:values){
                System.out.println(value);
            }
            System.out.println("-------------");
        }

控制台输出
无论GET还是POST都可以用通用方式获取请求参数

*中文乱码问题
get方式:不会乱码Tomcat 8已经自我解决了。
post方式:会乱码,在获取参数前设置请求方式中流的编码即可。

//设置流的编码
        request.setCharacterEncoding("utf-8");

上一篇:

下一篇: