Response内置对象

Response内置对象
  Request 内置对象主要用来处理用户的请求, 处理对用户的响应,需要使用内置对象的类型是
  "javax.servlet.http.HttpServletResponse", 对象名 : response, 在调用 service 方法的时候容器会传递过来

Response的方法:
  public void addCookie(Cookie cookie)
    向客户端添加一个 cookie 信息到客户端浏览器
  publlic void send Redirect(java.lang.String location)
    该方法可以实现客户端跳转, 客户端跳转最大的特征是:
      1.浏览器地址栏信息改变
      2.重新想服务器发送一个新的请求
  public java.ioPrinWriter getWriter( )
    获取一个向客户端输出信息的打印流对象, 可以使用该对象实现信息的输出
  public void setContentType(java.lang.String type)
    可以设置响应的 MIME 类型和字符编码

MIME :
  MIME 是设定某种扩展名的文件用一种应用程序来打开的方式类型, 当扩展名文件被访问的时候,
  浏览器会自动使用指定应用程序来打开, MIME 类型-在把输出结果传送到浏览器上的时候,
  浏览器必须启动适当的应用程序来处理这个输出的信息,
    超文本标记语言文本 text/html
    普通文本 .txt text/plain
    RTF 文本 .rtf application/rtf
    GIF 图形 .gif image/gif
    JPEG 图形 .jpeg.jpg image/jpeg
    GZIP 文件 .gz application/x-gzip
    TAR 文件 .tar application/x-tar
    Excel 文件 application/vnd.ms-excel
ex:
  假设要传入一个 Microsoft Excel文件到客户端, MIME类型就是 "application/vnd.ms-excel".
  大部分情况, 在 JSP 中, 设定 MIME 类型的方法是通过 Response 对象的 setContentType( )方法.

Demo: 向客户端输出信息

 1 @SuppressWarnings("serial")
 2 public class EmpServlet extends HttpServlet {
 3     @Override
 4     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 5         //设置响应的编码
 6         resp.setContentType("text/html;charset=utf-8");
 7         //获取打印流对象 
 8         PrintWriter out = resp.getWriter();
 9         //输出信息
10         out.print("你好,我是服务器输出的信息");
11         //关闭流
12         out.close();
13     }
14 }

Demo: 创建自己的 cookie
  如果添加的 cookie 的名称相同则后面的 cookie 覆盖前面的 cookie.

 1 @SuppressWarnings("serial")
 2 public class EmpServlet extends HttpServlet {
 3     @Override
 4     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 5         //创建 Cookie 信息
 6         Cookie c1 = new Cookie("c1", "1234");
 7         Cookie c2 = new Cookie("c2", "abcd");
 8         //把 cookie 保存到浏览器 
 9         resp.addCookie(c1);
10         resp.addCookie(c2);
11     }
12 }

Demo: 在服务器端获取 cookie 信息
  后面访问服务器的时候会带上 cookie 信息到服务端, 就可以在服务器端取得 cookie 信息
  cookie 保存的时间默认情况是浏览器关闭就没了

 1 @SuppressWarnings("serial")
 2 public class EmpServlet extends HttpServlet {
 3     @Override
 4     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 5         //获取 Cookie 信息
 6         Cookie [] cs = req.getCookies();
 7         for (Cookie c : cs) {
 8             System.out.println(c.getName() + ":" + c.getValue());
 9         }
10     }
11 }

Demo: 设置 cookie 的存活时间

  此方法经常不成功.....

 1 @SuppressWarnings("serial")
 2 public class EmpServlet extends HttpServlet {
 3     @Override
 4     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 5         //创建 Cookie 对象
 6         Cookie c1 = new Cookie("c1", "1234");
 7         //设置存活时间, 以秒为单位
 8         c1.setMaxAge(60*60*24);
 9         
10         Cookie c2 = new Cookie("c2", "abcd");
11         //把 cookie 保存到浏览器 
12         resp.addCookie(c1);
13         resp.addCookie(c2);
14     }
15 }

 

posted @ 2019-04-21 15:55  笑长不爱笑QvQ  阅读(339)  评论(0编辑  收藏  举报