设置状态码的方法:
    void setStatus(int sc)
    void setStatus(int sc, String sm)

设置响应头的方法:
    void setHeader(String name, String value)
    void setDateHeader(String name, long date)
    void setIntHeader(String name, int value)
    void addDateHeader(String name, long date)
    void addHeader(String name, String value)
    void addIntHeader(String name, int value)
            
设置响应内容的方法:
    ServletOutputStream getOutputStream()
    PrintWriter getWriter()

  细节问题:

    getOutputStream()和getWriter() 这两个方法是互斥的, 在一次请求当中调用了其中的一个, 就不能再调用另一个!!!

在调用完getOutputStream()或getWriter()方法之后, 不需要手动去关闭流, 服务器会自动帮我们去关闭!!!
            
            这个两个方法获取到的流并不是指向客户端的流, 而是指向response缓冲区的流, 通过流将数据写入response缓冲区, service方法执行结束, 请求回到服务器, 由服务器将数据组织成响应消息打给浏览器!!

  乱码问题:

    不管是字符流还是字节流, 解决乱码问题, 可以用一行代码搞定:
            response.setContentType("text/html;charset=utf-8")

response主要功能:

  实现重定向 (!!)
        重定向的原理就是302+location, 通过设置状态码302和location响应头就可以实现重定向的效果
        response.setStatus(302);
        response.setHeader("Location", "/Day09/index.jsp");
        这两行代码等价于
        response.sendRedirect("/Day09/index.jsp");

  实现定时刷新(与重定向的唯一区别就是多了个计数器然后再重定向)
      定时刷新是通过Refresh响应头, 可以实现在多少秒之后跳转到另外一个资源
      response.setHeader("Refresh", "3;url=/Day09/index.jsp");

  控制浏览器缓存:

    由于不同的浏览器的缓存行为可能是不同的, 我们可以在服务器中通过设置响应头来控制浏览器的缓存行为!!
              控制浏览器不要缓存:(3种方法)
                  1.setDateHeader("Expires", -1);
                  2.setHeader("Cache-control", "no-cache");
                  3.setHeader("Pragma", "no-cache");

    控制浏览器要缓存: (两种方法)--缓存至明天
                   1.setDateHeader("Expires", System.currentTimeMillis()+1000*60*60*24);
                   2.setHeader("Cache-control", "max-age=60");

 

Response 部分功能的更多相关文章

  1. Webform(五)——内置对象(Response、Request)和Repeater中的数据增删改

    一.内置对象 (一)Response对象 1.简介:response 对象在ASP中负责将信息传递给用户.Response对象用于动态响应客户端请求,并将动态生成的响应结果返回到客户端浏览器中,使用R ...

  2. 重温Servlet学习笔记--response对象

    在用户浏览网页时,服务器对于客户端浏览器做出的响应被封装成一个HttpServletResponse对象,要对浏览器操作只需要操作这个response对象即可.response的功能分类及介绍: 响应 ...

  3. Javaweb学习笔记——(十)——————response对象,response字符流缓冲器,响应头,状态码,重定向,requset对象,路径和乱码

    请求响应对象: request和response *当服务器接收都请求后,服务器会创建request和response对象,把请求数据封装到request对象中: *然后调用Servlet的sevic ...

  4. request和response的复习

    客户端发来的请求,服务器将请求封装成request对象,包括请求头和请求的数据等.创建response对象,调用Servlet的Service()方法传递这两个参数,使用HttpServlet就是将这 ...

  5. JavaWeb学习笔记(四)—— response

    一.response概述 response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse.在客户端发出每个请求时,服 ...

  6. Response笔记

    # 今日内容          1. HTTP协议:响应消息     2. Response对象     3. ServletContext对象 ## HTTP协议:     1. 请求消息:客户端发 ...

  7. Response与ServletContext对象

    HTTP协议: 请求消息:客户端发送给服务器端的数据 数据格式: 请求行: 格式: 请求方式 请求url 请求协议/版本 请求头:告诉服务器,当前访问的浏览器自身的一些信息 格式: 请求头名称: 请求 ...

  8. HTTP&ServletContext&Response对象_文件上传

    今日内容 1. HTTP协议:响应消息 2. Response对象 3. ServletContext对象 HTTP协议 1. 请求消息:客户端发送给服务器端的数据 * 数据格式: 1. 请求行 2. ...

  9. FastSocket学习笔记~再说客户端与服务端的组成

    废话多说 很久之前,我写过几篇FastSocket的文章,基本属于使用的方法,而缺乏对概念的总结讲解,而本讲就是弥补一下上几讲的不足,将核心的模块再说说,再谈谈,再聊聊! 首先FastSocket由C ...

随机推荐

  1. 在fslook

    fslook让我们从内核看文件系统而不是从用户态,从这个工具中发现了很多之前忽略过的点. 1)overlay从内核中看到的文件的ino为什么和用户态stat中看到的ino不是一样的?

  2. $.ajax()方法参数总结

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和d ...

  3. DataBase -- Second Highest Salary

    Question: Write a SQL query to get the second highest salary from the Employee table. +----+-------- ...

  4. 【ZJ选讲·钻石游戏】

    N×M的棋盘(M,N<=500)中,每个格子有一个颜色(颜色数1~9) P次操作(P<=1000),每次给出两个相邻的位置(保证颜色不同,两个格子有一条公共边),把这两个格子交换. 定 ...

  5. MySQL:BlackHole

    MySQL:BlackHole 顾名思义BlackHole就是黑洞,只有写入没有输出.现在就来实验一下吧 首先查看一下MySQL支持的存储引擎 mysql> show engines;+---- ...

  6. POJ2492:A Bug's Life(种类并查集)

    A Bug's Life Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 45757   Accepted: 14757 题 ...

  7. docker compose,link,Odoo

    1.报错: /usr/bin/docker-current: Error response from daemon: driver failed programming external connec ...

  8. idea使用(一)

    基本上正式开发的常用工具基本都集成了,而且基本都在你非常容易触到的位置.说说我比较常用的: 1.ant 你懂的 2.maven你也懂的 3.SVN相比之下,IDEA的SVN的提交提供了更多的选项和功能 ...

  9. 【SPOJ-QTREE3】树链剖分

    http://www.spoj.com/problems/QTREE3/ 时间限制:2s    代码长度限制:50000B     内存限制:1536MB [题目描述] 给出N个点的一棵树(N-1条边 ...

  10. 【BZOJ】1708: [Usaco2007 Oct]Money奶牛的硬币

    [算法]DP [题解] 如果每个排列算一种,则令f[i]表示凑成面值为i的方案数,容易推出f[i]+=f[i-a[j]]. 现在是每个组合才算一种,令f[i][j]第二维表示只使用前j种面值,f[i] ...