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);
}
}