request和response对象的原理

request和response对象的原理

(1)请求进入tomcat中,tomcat服务器会根据请求url中的资源路径,创建对应的servletdemo对象。
(2)tomcat服务器,会创建request和response对象,request对象中封装请求消息数据
(3)tomcat将request和response两个对象传递给service方法,并且调用service方法
(4)程序员,可以通过request对象获取请求的数据,通过response对象设置响应消息
(5)tomcat会在浏览器作出响应之前,会从response对象中拿到程序员设置的数据返回到浏览器。

总结:
(1)request和response对象由服务器创建,我们只是使用他们
(2)request对象是用来获取请求的数据的
(3)response对象是来设置响应消息的。

request对象继承体系结构

 ServletRequest.  ----接口
      | 继承
 HttpServletRequest   ----接口
       |实现
  RequestFacade.      ---类

request功能

1.获取请求数据
1.1 获取请求行数据
* GET day14/demo1?name=zhangsan. HTTP/1.1
* 方法:

  1.获取请求方式: GET
                  String getMethod();
             2.获取虚拟目录:/day4
                  String getContextPath();
              3.获取servlet路径
                 String getServletPath();
              4.获取get方式请求参数:name=zhangsan
                  String getQueryString();
               5.获取请求URI:/day14/demo1
                   String getRequestURI();
                   StringBuffer getRequestURL(); http://localhost/day14/demo1
                         URI:统一资源标志符       /day14/demo1            共和国
                         URL:统一资源定位符    http://localhost/day14/demo1      中华人名共和国
               6.获取协议版本号
                   String getProtocol();
                7.获取客户机ip地址
                   String getRemoteAddr();
 1.2获取请求头数据
String getHeaser(String name)   通过请求头的名称获取请求头的值
Enumeration<String> getHeaders():获取所有的请求头名称

referer:请求头来源(完全路径)
user-agent:请求来自的浏览器

 1.3获取请求体数据
1.请求体:只有post请求方式,才有请求体,在请求体中封装了POST请求参数
步骤:
    1.获取流对象
          * BufferedReader getReader(): 获取字符输入流,只能操作字符数据
          * ServletInputStream getInputStream(): 获取字节输入流,可以操作所有类型


     2.再从流中获取数据

2.其他功能
1.获取请求参数的通用方式
String getParameter(String name) :根据参数名称获取参数值
String[] getParaterValues(String name):根据参数名称获取参数值的数据
Enumeration
2.请求转发
3.共享数据
4.获取servletContext

posted @ 2021-11-23 08:56  King-DA  阅读(204)  评论(0)    收藏  举报