• response.setContentType()的作用及参数


     1 package com.java1234.util;
     2 
     3 import java.io.PrintWriter;
     4 
     5 import javax.servlet.http.HttpServletResponse;
     6 
     7 
     8 public class ResponseUtil {
     9 
    10     public static void write(Object o,HttpServletResponse response)throws Exception{
    11         response.setContentType("text/html;charset=utf-8");
    12         PrintWriter out=response.getWriter();
    13         /*
    14         打个通俗的比方就是通过HttpServletResponse对象得到一支笔,然后就可以用out.print()方法在网页上写任何你想显示的内容。
    15         out.print("<html><body>");
    16         out.print("任何内容");
    17         out.print("</body></html>");
    18         */
    19         out.println(o.toString());
    20         out.flush();
    21         out.close();
    22     }
    23 }

    response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。
    例如web浏览器就是通过MIME类型来判断文件是GIF图片。通过MIME类型来处理json字符串。

    Tomcat的安装目录confweb.xml 中就定义了大量MIME类型 ,可以参考。
    response.setContentType("text/html; charset=utf-8"); html
    .setContentType("text/plain; charset=utf-8"); 文本
    text/javascript json数据
    application/xml  xml数据

    这 个方法设置发送到客户端的响应的内容类型,此时响应还没有提交。给出的内容类型可以包括字符编码说明,例 如:text/html;charset=UTF-8.如果该方法在getWriter()方法被调用之前调用,那么响应的字符编码将仅从给出的内容类型 中设置。该方法如果在getWriter()方法被调用之后或者在被提交之后调用,将不会设置响应的字符编码,在使用http协议的情况中,该方法设 置 Content-type实体报头。
    一般在Servlet中,习惯性的会首先设置请求以及响应的内容类型以及编码方式:
    response.setContentType("text/html;charset=UTF-8");
    request.setCharacterEncoding("UTF-8");


    response.setContentType()的String参数及对应类型

    <option   value="image/bmp">BMP</option>   
    <option   value="image/gif">GIF</option>   
    <option   value="image/jpeg">JPEG</option>   
    <option   value="image/tiff">TIFF</option>   
    <option   value="image/x-dcx">DCX</option>   
    <option   value="image/x-pcx">PCX</option>   
    <option   value="text/html">HTML</option>   
    <option   value="text/plain">TXT</option>   
    <option   value="text/xml">XML</option>   
    <option   value="application/afp">AFP</option>   
    <option   value="application/pdf">PDF</option>   
    <option   value="application/rtf">RTF</option>   
    <option   value="application/msword">MSWORD</option>   
    <option   value="application/vnd.ms-excel">MSEXCEL</option>   
    <option   value="application/vnd.ms-powerpoint">MSPOWERPOINT</option>   
    <option   value="application/wordperfect5.1">WORDPERFECT</option>   
    <option   value="application/vnd.lotus-wordpro">WORDPRO</option>   
    <option   value="application/vnd.visio">VISIO</option>   
    <option   value="application/vnd.framemaker">FRAMEMAKER</option>   
    <option   value="application/vnd.lotus-1-2-3">LOTUS123</option>

    MIME映射策略就是在网页中使用哪个应用程序(即插件),打开哪种文件。另外还有使用权限问题。比如对PDF文档,用“application/pdf “策略。这在动态网页中很常见。出现这种现象,有两种情形:一是使用一个应用程序去打开它不能打开的文档,比如用在标签中定义“DWG”文档用 “application/pdf ”,就会出现无法打开的问题。二是文件扩展名符合要求,但文件内容(格式)不符合要求。你可以检查你浏览的网页源代码,获得出错信息。检查方法是:查看— 源文件。寻找类似于“application/pdf “的字符串,就可以看到,要打开的文件是否与应用程序匹配。 追问 如果不相匹配 如何解决回答 这通常是由网页编写人来更改。比如:你在源文件里面找到你要打开的文件的HTML标签,在里面加上应用程序即可。比如,你要在网页上打开一个PDF文档, 找到PDF文档那一行,在HTML标签里加上 type=“application/pdf “ 就可以了。比如以下HTML文件: <!----------测试MIME-----------><html> <head><title>测试MIME</title></head><body> <a type="application/pdf" href="test.pdf">测试MIME</a> </body> </html 将上面的代码保存为test.html,再在相同的位置存储一个pdf文档,双击它就会在网页中打开该文档。

    【转】Servlet的PrintWriter out = response.getWriter()使用

    一直以来,只知道out可以向客户端浏览器页面输入数据(html、txt等类型),今天在和php程序联调时发现自己的理解出现了偏差。

    out是输出字符流,即servlet接受到request请求后,servlet使用out来返回结果,不管客户端是什么(浏览器或者httpclient 或者别的serlvet等等),它都和客户端建立一个流输出管道,然后把字符流输出给请求端。

    谨以此文字记录自己的浅薄。

    ---- 动动手指关注我!或许下次你又能在我这里找到你需要的答案!ZZZZW与你一起学习,一起进步!
  • 相关阅读:
    Freckles (最小生成树)
    素数筛法 模板
    Least Common Multiple (最小公倍数,先除再乘)
    Watering Grass (贪心,最小覆盖)
    Minimal coverage (贪心,最小覆盖)
    今年暑假不AC (贪心)
    Bzoj1072 [SCOI2007]排列perm
    Bzoj1087 [SCOI2005]互不侵犯King
    POJ1185 炮兵阵地
    POJ3254 Corn Fields
  • 原文地址:https://www.cnblogs.com/zzzzw/p/4869741.html
Copyright © 2020-2023  润新知