程序员社区

【Servlet-0】Request对象获取请求体数据

Request对象获取请求体数据

请求体:只有POST方式,才有请求体,在请求体中封装了POST请求的请求参数
请求体的数据将其封装成流
1.获取流对象
 1.获取字符输入流:只能操作字符数据
  BufferedReader getReader()
  2.获取字节输入流:可以操作所有类型的数据
  ServletInoutStream getInputStream()
2.再从流对象中拿数据

<html>

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/15-Http-Request/RequestDemo5" method="post">
    请输入用户名: <input type="text" name="username"><br>
    请输入密码:<input type="text" name="password"><br>
    <input type="submit" value="注册">
</form>
</body>
</html>
package Request;

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.BufferedReader;
import java.io.IOException;

/**
 * 演示获取请求体
 */
@WebServlet("/RequestDemo5")
public class RequsetDemo5 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取请求消息体
        //1.获取字符流
        BufferedReader br = request.getReader();
        //2.读数据
        String line = null;
        while((line=br.readLine())!=null){
            System.out.println(line);
        }
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}

在这里插入图片描述
输出结果:
在这里插入图片描述
如果使用post方式提交时,如果输入中文将会导致中文乱码,所以如果是post方式需要设置流的编码方式(get方式不需要)

package Request;

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.Enumeration;
import java.util.Map;
import java.util.Set;

/**
 * 演示获取请求体
 */
@WebServlet("/RequestDemo8")
public class RequsetDemo8 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取参数前设置流的编码
        request.setCharacterEncoding("utf-8");
        //获取请求参数username
        String username = request.getParameter("username");
        System.out.println(username);
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);
    }
}

在这里插入图片描述

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【Servlet-0】Request对象获取请求体数据

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区