011、获取请求体中请求参数相关方法

获取请求体中请求参数相关方法:
1. 获取请求参数通用方式:不论get还是post请求方式都可以使用下列方法来获取请求参数
    1. String getParameter(String name):根据参数名称获取参数值    username=zs&password=123
    2. String[] getParameterValues(String name):根据参数名称获取参数值的数组  hobby=xx&hobby=game,多用于复选框
    3. Enumeration<String> getParameterNames():获取所有请求的参数名称
    4. Map<String,String[]> getParameterMap():获取所有参数的map集合

    * 中文乱码问题:
        * get方式:tomcat 8 已经将get方式乱码问题解决了
        * post方式:会乱码
            * 解决:在获取参数前,设置request的编码request.setCharacterEncoding("utf-8");

案例:

ServletDemo07.java

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Collection;
import java.util.Enumeration;
import java.util.Map;
import java.util.Set;

@WebServlet("/ServletDemo07")

public class ServletDemo07 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //这个可以解决中文的字符乱码问题
        request.setCharacterEncoding("utf-8");
        
        System.out.println("====================== 1 ==========================");
        String username = request.getParameter("username");
        System.out.println(username);
        System.out.println("====================== 2 ==========================");
        String[] hobbs = request.getParameterValues("hobb");
        for (String hobb : hobbs) {
            System.out.println(hobb);
        }
        System.out.println("====================== 3 ==========================");
        Enumeration<String> parameterNames = request.getParameterNames();
        while (parameterNames.hasMoreElements()){
            System.out.println(parameterNames.nextElement());
            System.out.println("---------------------");
        }
        System.out.println("====================== 4 ==========================");
        Map<String, String[]> parameterMap = request.getParameterMap();
        Set<String> strings = parameterMap.keySet();
        for (String string : strings) {
            System.out.print(string+": ");
            String[] strings1 = parameterMap.get(string);
            for (String s : strings1) {
                System.out.print(s+"  ");
            }
            System.out.println();
        }
        System.out.println();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);
    }
}

login3.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/servlet/ServletDemo07" method="post">
        用户名:<input type="text" name="username" placeholder="请输入用户名"><br/>
        密码:<input type="text" name="password" placeholder="请输入密码"><br/>
        <input type="checkbox" name="hobb" value="playgame">玩游戏
        <input type="checkbox" name="hobb" value="study">学习
        <input type="checkbox" name="hobb" value="read">读书<br/>
        <input type="submit" value="提交">
    </form>

</body>
</html>

浏览器:

控制台输出:

====================== 1 ==========================
linfeng???
====================== 2 ==========================
study
read
====================== 3 ==========================
username
---------------------
password
---------------------
hobb
---------------------
====================== 4 ==========================
username: linfeng???  
password: 123  
hobb: study  read  
发布了285 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/l0510402015/article/details/104702454
今日推荐