浏览器将所有请求信息全部封装到HttpServletRequest对象中。
浏览器直接访问资源,默认提交的方式是Get方式。
实体内容:只有Post提交的参数会放到实体内容中。
1 @WebServlet("/RequestDemo1") 2 public class RequestDemo1 extends HttpServlet { 3 /** 4 * 这些动作服务器已经做了: 5 * 1)tomcat服务器接收到浏览器发送的请求数据,然后封装到HttpServletRequest对象 6 * 2)tomcat服务器调用doGet方法,把request对象传入到servlet中 7 * @author MaoDoer 8 * 9 */ 10 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 11 /** 12 * 3)从request对象取出请求数据。 13 */ 14 /** 15 * 3.1请求行 16 */ 17 System.out.println("请求方式:"+request.getMethod());//请求方式 18 System.out.println("URI:"+request.getRequestURI());//请求资源 19 System.out.println("URL: "+request.getRequestURL()); 20 System.out.println("http协议版本:"+request.getProtocol());//http协议版本 21 /** 22 * 3.2请求头 23 */ 24 String host=request.getHeader("Host");//根据头名称拿到头的值 25 System.out.println(host); 26 Enumeration<String> enums = request.getHeaderNames();//获取请求请求头中所有的名称 27 while(enums.hasMoreElements()){ 28 String headName = enums.nextElement(); 29 String headerValue = request.getHeader(headName); 30 System.out.println(headName+"::"+headerValue); 31 } 32 } 33 34 //为了接收Post方式提交的请求,Post方式提交的请求就一定要使用doPost方式请求 35 @Override 36 protected void doPost(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException { 37 /** 38 * 3.3实体内容 39 */ 40 InputStream in = request.getInputStream();//获取实体内容 41 byte[] buf=new byte[1024]; 42 int len=0; 43 while((len=in.read(buf))!=-1){ 44 String str = new String(buf,0,len); 45 System.out.println(str); 46 } 47 } 48 }
HttpServletRequest对象
HttpServletRequest对象作用是用于获取请求数据。核心的API:
请求行:
request.getMethod();//获取提交的方式
request.getRequestURI();request.getRequestURL();//获取资源
request.getProtocol();//请求http协议版本
请求头:
request.getHeader("名称");//根据名称获取请求值
request.getHeaderNames();//获取请求头中所有的名称
实体内容:
request.getInputStream();//获取实体内容的数据
时间: 2024-10-25 11:30:38