Servlet的response学习笔记

先附上Response的常用方法

1、响应行  HTTP/1.1  200 OK

  setStatus(int sc) 设置响应状态码

2、响应头

   sendRedirect(String location) 请求重定向

   setHeader(String name, String value) 设置响应头信息

   response.setHeader("content-type", "text/html;charset=UTF-8");//告知浏览器使用什么码表

 

  //告知客户端不缓存

  response.setHeader("pragma", "no-cache");

  response.setHeader("cache-control", "no-cache");

  response.setDateHeader("expires", 0);

 

  Referesh刷新

3、响应正文(主体)

   getWrite(); 字符输出流

   getOutputStream(); 字节输出流

   setCharacterEncoding(String charset) 告知服务器使用什么编码

   setContentType(String type)

 

实例1.字符流和字节流向客户端写出中文

  

 

 

注意点就是 如果输出单一数字记得要把数字变为字符串

 

 

实例2下载文件

注意点就是记得设置头部信息,设置下载文件的名字为中文记得要用URLEncoder进行转码

response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(fileName, "UTF-8"));

 

实例三验证码

 下面是网页中的内容,注意点是每次点击让他刷新,所以写了一个js更新了请求。

如果想要刷新变化,那么需要服务端写头部指定不使用缓存

这样验证功能就完成了.

 

 

总结一些response比较实用的东西

1.转码头部信息

  response.setContentType("text/html; charset = UTF-8");  //既告诉了浏览器,也告诉了服务器以何种方式解析

2.字节流如何传递中文(字符串如何转换为指定格式的字节数组)

  outputStream.write("你好".getBytes("UTF-8"));

3.文件下载的几个重点,获取文件路径,解析中文文件名,设置下载文件的头部信息

  String path = this.getServletContext().getRealPath("/WEB-INF/img/反射的三个阶段.png");

   filename = URLEncoder.encode(filename, "UTF-8");

   response.setHeader("content-disposition", "attachment;filename="+filename);

   response.setHeader("content-type", "img/jpeg");

3.告诉客户端不使用缓存

  response.setHeader("pragma", "no-cache");

   response.setHeader("cache-control", "no-cache");

   response.setHeader("expires", "0");

4.设置客户端多久刷新一次,或者设置客户端多久之后跳转

    response.setIntHeader("refresh", 2);  //2s刷新一次

  response.getWriter().write("3s跳转");  //3s之后跳转demo6

  response.setHeader("refresh", "3;/day_09_00_HttpServletService/servlet/HttpServletResponseDemo6");

5.设置重定向 

   response.setStatus(302);    // 上面这两句,等于最下面那一句
   response.setHeader("location", "/day_09_00_HttpServletService/servlet/HttpServletResponseDemo6");
   response.sendRedirect("/day_09_00_HttpServletService/servlet/HttpServletResponseDemo6");

  

posted @ 2017-09-02 20:39  Soe  阅读(56)  评论(0编辑  收藏  举报