• 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)如果没有什么特殊的需求,两种方式都可以。

  • 相关阅读:
    varnish反向代理
    Asp.Net MVC 3.0
    反向代理(Reverse Proxy)
    Go语言开发Windows应用
    Windows下安装NodeJS和CoffeeScript方法
    数据库设计....
    发布一个开源的c++网络事件库
    非小型电子商务系统设计经验分享 Coding changes the world
    SqlServer查询计划
    cocos2dx总结(一)HelloWord
  • 原文地址:https://www.cnblogs.com/gxlaqj/p/11397962.html
Copyright © 2020-2023  润新知