1.request对象是由服务器创建的.request对象是来获取请求消息
2.常用的方法
- 获取请求行数据
1.获取请求方式: *String getMethod()
2.(重点)获取虚拟目录: *String getContextPath()
3.获取Servlet路径: *String getServletPath()
4.获取get方式请求参数: *String getQueryString()
5.(重点)获取请求的URI:
*String getRequestURI() ;*URI:统一资源标识符:
*StringBuffer getRequestURL() ;*URL:统一资源定位符:
*标识符的范围比定位符的范围大
6.获取协议以及版本号 *String getProtocol();
7.获取客户机的IP地址 *String getRemoteAddr():
- 获取头数据
*String getHeader(String name):通过请求头的名称获取请求头的.
*Enumeration<String> getHeaderNames():获取所有的请求头名称
- 获取体数据
*请求体:只有POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数 *步骤: 1.获取流对象 *BufferedReader getReader():获取字符输入流,只能操作字符数据 *ServletInputStream():获取字节输入流,可以操作所有类型数据 2.再从流对象中拿数据
- 其他方法:
1.String getParameter(String name):根据参数名称获取参数值
2.String[] getParameterValues(String name):根据参数名称获取参数值的数组 3.Enumeration<String> getParameterNames():获取所有请求的参数名称 4.Map<String,String[]> getParameterMap():获取所有参数的map集合
代码演示:
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("/servletDemo1")
public class servletDemo1 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1.获取请求方式: GET *String getMethod()
String method = req.getMethod();
System.out.println(method);
//2.(重点)获取虚拟目录: /day14 *String getContextPath()
String contextPath = req.getContextPath();
System.out.println(contextPath);
//3.获取Servlet路径: /demo1 *String getServletPath()
String servletPath = req.getServletPath();
System.out.println(servletPath);
// 4.获取get方式请求参数: name=Zhangsan *String getQueryString()
String queryString = req.getQueryString();
System.out.println(queryString);
//5.(重点)获取请求的URI: /day14/demo1
// *String getRequestURI() :/day14/demo
//*StringBuffer getRequestURL() :http://localhost/day14/demo1
StringBuffer requestURL = req.getRequestURL();
System.out.println(requestURL);
String requestURI = req.getRequestURI();
System.out.println(requestURI);
//6.获取协议以及版本号 *String getProtocol();
String protocol = req.getProtocol();
System.out.println(protocol);
//7.获取客户机的IP地址 *String getRemoteAddr():
String remoteAddr = req.getRemoteAddr();
System.out.println(remoteAddr);
}
}