Response

1.response简介:

  Response是表示HTTP相应的对象

  在服务器调用service方法处理请求之前,服务器会创建出代表Http相应的对象,在service方法处理请求的过程中,如果有任何数据要发送个浏览器,可以将数据先写入到response缓冲区中,等service方法执行完后,请求再次回到服务器,由服务器从缓冲区中获取数据,按照HTTP协议的格式发送给浏览器。

 

2.response的继承关系

  ServletResponse接口  定义了一个response应该具有的功能

    |----HttpServletResponse接口  继承了ServletResponse接口,并且添加了部分和Http协议相关的方法

      |----xxxx  Response对象

 

3.Response常用方法

  状态行

  若干响应头

  相应实体内容

  设置状态码的方法

    setStatus(int statues)

  设置响应头的方法

    setHeader(String name,String value)

  设置响应实体内容的方法

    response.getWriter().write();

    getOutPutStream();

 

4.Response功能

4.1向客户端浏览器发送数据

  getOutPutStream();

  getWriter()

  注:这个流不需要关闭,服务器会自动关闭

    这两个流是指向response缓冲区的,而不是指向浏览器

4.2实现请求重定向

  重定向可以实现资源的跳转,和请求转发不同的是,重定向可以实现在不同的web应用和不同的虚拟主机之间进行跳转

  实现重定向:

    (1)response.setStatus(302);

      response.setHeader("location(虚拟主机的名称)“,”所跳转的资源路径");

    (2)response.sendRedirect(String str);

  重定向特点:

    (1)两次请求,两次响应

    (2)重定向前后的两个资源中的Request对象不是同一个

    (3)重定向前后地址栏地址会发生变化

    (4)重定向既可以实现同一个web应用内部的资源跳转,也可以实现不同的web应用或者不同的虚拟主机之间的资源跳转

4.3实现定时刷新

  通过Refresh响应头可以实现在多少秒之后跳转到指定的资源

  代码实现:

    response.setHeader("Refresh","3;url=/Servlet/index.jsp");

  定时刷新特点:

    

    (1)两次请求,两次响应

    (2)重定向前后的两个资源中的Request对象不是同一个

    (3)重定向前后地址栏地址会发生变化

    (4)重定向既可以实现同一个web应用内部的资源跳转,也可以实现不同的web应用或者不同的虚拟主机之间的资源跳转

    (5)和重定向不同的是,定时刷新是在指定多少秒之后,才会进行跳转,在跳转之前,会有一段时间的间隔,我们可以提示用户3秒之后将会跳转到主页。

 

5.请求转发、重定向、定时刷新分别在什么情况下使用:

(1)若果是同一个web应用内部资源跳转,三种方式都可以,具体使用哪一种

  (a)若果希望跳转之后地址栏地址不会发生变化,这里只能使用请求转发

  (b)如果希望在跳转之后地址栏地址会发生变化,这里可以使用重定向或者定时刷新

  (c)如果在跳转的过程中,希望带着数据到目的地,这里只能使用请求转发

  (d)如果没有声明别的需求,仅仅是做一个跳转,推荐使用转发,因为转发是一次请求,可以减少访问服务器的次数,减少服务器压力!!!!!!

(2)如果是不同的WEB应用之间的资源的跳转,只能使用重定向和定时刷新,具体使用哪一种:

  (a)重定向是立即跳转,中间没有时间间隔,而定时刷新,可以指定多少秒之后再进行跳转,在跳转之前,还可以发送响应到客户端,并维系一段时间。

  (b)如果没有什么特殊的需求,两种方式都可以。

 

posted @ 2019-08-23 09:07  我爱si搬砖  阅读(1167)  评论(0编辑  收藏  举报