1. 响应对象

回馈结果,服务器给客服端浏览器反馈结果

2. 常见状态码

  • 200 成功
  • 302 重定向
  • 304 请求资源未改变,使用缓存
  • 400 请求错误
  • 404 请求资源未找到
  • 405 请求方式不支持
  • 500 服务器错误

3. 字节流响应消息

  • getOutpitStream() 获取响应字节输出流对象
  • setContentType(“text/html;charset=UTF-8”) 设置响应内容类型 以及字符编码

4. 字符流响应消息

  • getWriter() 获取字符流输出对象

    • write(obj) 写入数据给客户端
  • setContentType(“text/html;charset=UTF-8”) 设置响应内容类型 以及字符编码

5. 设置缓存

对于不经常变化的数据,我可以设置合理的缓存时间,以避免浏览器频繁请求服务器

  • setDateHeader(String name,long time) 设置消息头添加缓存,时间单位毫秒

      1. response.setDateHeader("Expires",System.currentTimeMillis() + 1*60*60*1000);
      2. // Expires为过期时间关键字 time为当前时间 + 需要持续的时间

6. 定时刷新

过了指定时间后,页面自动进行跳转

  • setHeader(String name,String value) 设置消息头定时刷新

      1. response.setHeader("Refresh","3;URL=/login.html")
      2. // Refresh 刷新关键字 3为3s URL为虚拟路径

7. 请求重定向

客户端的一次请求到达后,发现需要借助其他Servlet来实现功能

与请求转发不一样,地址栏会改变,两次请求和请求域对象不能共享数据,可以重定向其他服务器

  • sendRedirect(String name) 设置重定向

      1. response.sendRedirect(request.getContextPath() + "/demo02");
      2. // 虚拟路径或者服务器URL

8. 文件下载

  • setHeader(String name,String value)

      1. response.setHeader("Content-Type","application/octet-stream")
      2. // 设置响应头支持的类型 Content-Type消息头名称支持的类型
      3. // application/octet-stream 消息头参数 应用的类型为字节流
      4. response.setHeader("Content-Dispostition","attachment;filename=xxx.zip")
      5. // 设置响应头以下载方式打开附件
      6. // Content-Dispostition 处理形式
      7. // attachment;filename=xxx.zip 以附件形式处理 并指定下载文件的名词