zoukankan      html  css  js  c++  java
  • HttpServletResponse简单理解

    Web服务器收到一个http请求,会针对每个请求创建一个HttpServletRequest和HttpServletResponse对象,从客户端取数据用HttpServletRequest,向客户端响应数据就用HttpServletResponse。

    常用方法

    addHeader(String name,String value)  //将指定的名字和值加入到响应的头信息中
    encodeURL(String url)  //编码指定的URL
    sendError(int sc)  //使用指定状态码发送一个错误到客户端
    setDateHeader(String name,long date  //将给出的名字和日期设置响应的头部
    setHeader(String name,String value)  //将给出的名字和值设置响应的头部 eg:response.setHeader(“Refresh”,”2;url=”http://www.baidu.com”); 页面的刷新
    setStatus(int sc)  //给当前响应设置状态码
    getOutputStream()  //字节输出流对象
    getWriter()   //字符的输出流对象
    sendRedirect ()   //对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的访问请求;方法调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。
    setContentType(String ContentType)  //设置响应的MIME类型 ,页面的设置文本类型,获取或设置输出流的 HTTP MIME 类型。
    setCharacterEncoding(String charset) //告知服务器用什么方式编码解析
    

    细节总结

    1. getOutputStream()和getWriter()方法分别用于得到输出二进制数据、输出文本数据的ServletOuputStream、Printwriter对象。
      也可以说getOutputStream()是字节流,getWriter()是字符流。
    2. getOutputStream和getWriter这两个方法互相排斥,调用了其中的任何一个方法后,就不能再调用另一方法。
    3. Servlet程序向ServletOutputStream或PrintWriter对象中写入的数据将被Servlet引擎从response里面获取,Servlet引擎将这些数据当作响应消息的正文,然后再与响应状态行和各响应头组合后输出到客户端。
    4. Serlvet的service方法结束后,Servlet引擎将检查getWriter或getOutputStream方法返回的输出流对象是否已经调用过close方法,如果没有,Servlet引擎将调用close方法关闭该输出流对象。
    5. HttpServletResponse输出中文的时候,注意服务端,客户端两边的编码一定要相同,不如就会出现乱码。

    示例代码

          @RequestMapping("/test")
          public void send(HttpServletRequest request,HttpServletResponse response)   {                                                                                                                 
              response.setHeader("Content-type", "application/json;charset=UTF-8");
              response.setCharacterEncoding("UTF-8");
              String content="HelloWorld";
              response.getWriter().write(content);
         }
    

    其他设置示例:

    	response.setContentType("image/jpeg");//设置相应类型,告诉浏览器输出的内容为图片
    	response.setHeader("Pragma", "No-cache");//设置响应头信息,告诉浏览器不要缓存此内容
    	response.setHeader("Cache-Control", "no-cache");
    	response.setDateHeader("Expire", 0);
    

    参考资料:
    http://www.51gjie.com/javaweb/964.html
    https://blog.csdn.net/Ada_yangyang/article/details/82191865

  • 相关阅读:
    第一节:从程序集的角度分析System.Web.Caching.Cache ,并完成基本封装。
    大话缓存
    第二节:SQLServer的安装及使用
    OpenCV特征点检测——ORB特征
    Opencv学习笔记--Harris角点检测
    关于Yuri Boykov and Vladimir Kolmogorov 于2004年提出的max flow / min cut的算法的详解
    [论文笔记] CUDA Cuts: Fast Graph Cuts on the GPU
    Graph Cut and Its Application in Computer Vision
    OpenCV中openMP的使用
    四种简单的图像显著性区域特征提取方法-----> AC/HC/LC/FT。
  • 原文地址:https://www.cnblogs.com/expiator/p/10791841.html
Copyright © 2011-2022 走看看