request执行原理和http数据格式
测试http请求格式
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试http请求格式</title>
</head>
<body>
<form action="test01" method="get">
<input type="text" placeholder="请输入用户名" name="username">
<input type="submit" value="提交">
</form>
</body>
</html>
测试
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;
@WebServlet("/test01")
public class test01_Servlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取请求行信息
// 获取请求方法
String method = request.getMethod();
System.out.println("请求的方法是:"+method);
// 获得虚拟目录
String contextPath = request.getContextPath();
System.out.println("获得的虚拟目录是:"+contextPath);
// 获取IP地址
String remoteAddr = request.getRemoteAddr();
System.out.println("获取的地址是:"+remoteAddr);
// 获取servlet的路径
String servletPath = request.getServletPath();
System.out.println("获得servlet的路径是:"+servletPath);
// 获得get请求的参数
String queryString = request.getQueryString();
System.out.println("get请求的参数是:"+queryString);
// 获得uri和url
String requestURI = request.getRequestURI();
System.out.println("获得的uri是:"+requestURI);
StringBuffer requestURL = request.getRequestURL();
System.out.println("获得的url是:"+requestURL);
// 获得协议与版本号
String protocol = request.getProtocol();
System.out.println("获得到的版本信息是:"+protocol);
//
}
}
结果:
测试获取请求头数据格式
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试获取请求头数据格式</title>
</head>
<body>
<form action="test02" method="post">
<input type="text" placeholder="请输入用户名" name="username">
<input type="submit" value="提交">
</form>
</body>
</html>
测试
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;
import java.util.Enumeration;
@WebServlet("/test02")
public class test02_Servlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取请求头数据 request.getHeader("请求头的名字")
String referer = request.getHeader("referer");
System.out.println("我从哪里来:"+referer);
// 获取所有的请求头名字
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()){
String name = headerNames.nextElement();
System.out.println("请求头名称:"+name);
String value = request.getHeader(name);
System.out.println(name+"-------"+value);
}
// 获得post请求的请求体
BufferedReader reader = request.getReader();
String s = null;
while ((s=reader.readLine())!=null){
System.out.println(s);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
结果是: