精华内容
下载资源
问答
  • setheader方法
    2017-11-27 19:04:00

    通过response.setHeader方法设置头文件

    1.设置content-disposition响应头控制浏览器以下载的形式打开文件
    response.setHeader("content-disposition", "attachment;filename="+fileName);
    2.设置输出流的编码方式
    response.setCharacterEncoding("UTF-8");
    3.获取输出流
    response.getWriter()
    4.设置浏览器以何种方式编码输入流
    response.setHeader("content-type", "text/html;charset=UTF-8")
    5.下载文件名带中文的文件时
    response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(fileName, "UTF-8"));

    转载于:https://www.cnblogs.com/daoxuandejuse/p/7905604.html

    更多相关内容
  • 主要介绍了node.js中的http.response.setHeader方法使用说明,本文介绍了http.response.setHeader的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
  • setHeader方法的使用

    千次阅读 2020-03-19 14:25:29
    response.setHeader("refresh","1"); 二秒跳到其他页面 : response.setHeader("refresh","2;URL=otherPagename"); 没有缓存: response.setHeader("Pragma", "No-cache"); response.setHeader...

    1. HTTP消息头

     

    一秒刷新页面一次:

     response.setHeader("refresh","1");

    二秒跳到其他页面 :

    response.setHeader("refresh","2;URL=otherPagename");

    没有缓存:

    response.setHeader("Pragma", "No-cache");  response.setHeader("Cache-Control", "no-cache");

    设置过期的时间期限:

          response.setDateHeader("Expires", System.currentTimeMillis()+自己设置的时间期限);

    访问别的页面:

          response.setStatus(302); response.setHeader("location","url");

    通知浏览器数据采用的压缩格式:

          response.setHeader("Content-Encoding","压缩后的数据"); 
    高速浏览器压缩数据的长度:

          response.setHeader("Content-Length",压缩后的数据.length+"");
    高速浏览器图片或视频:

          response.setHeader("Content-type","这个参数在tomcat里conf下的web.xml里面找");
     

    inputstream in= this.getServletContext.getResourceAsStream("/2.jpg");
    int len=0;
    byte buffer[]= new byte[1024]
    outputStream out = response.getOutputStream();
    while(len=in.read(buffer)>0){
      out.write(buffer,0,len)
    }
    //高速浏览器已下载的形式:response.setHeader("Content-disposition","attachment;filename=2.jpg");
    inputstream in= this.getServletContext.getResourceAsStream("/2.jpg");
    int len=0;
    byte buffer[]= new byte[1024]
    outputStream out = response.getOutputStream();
    while(len=in.read(buffer)>0){
      out.write(buffer,0,len)
    }
    • 通用信息头

    即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma
    主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfer-Encoding , Upgrade

    • 请求头

    用于在请求消息中向服务器传递附加信息,主要包括客户机可以接受的数据类型,压缩方法,语言,以及客户计算机上保留的信息和发出该请求的超链接源地址等.
    主要: Accept , Accept-Encoding , Accept-Language , Host ,

    • 响应头

    用于在响应消息中向客户端传递附加信息,包括服务程序的名称,要求客户端进行认证的方式,请求的资源已移动到新地址等.
    主要: Location , Server , WWW-Authenticate(认证头)

    • 实体头

    用做实体内容的元信息,描述了实体内容的属性,包括实体信息的类型,长度,压缩方法,最后一次修改的时间和数据的有效期等.
    主要: Content-Encoding , Content-Language , Content-Length , Content-Location , Content-Type

    • 扩展头

    主要:Refresh, Content-Disposition

    2. 几个主要头的作用

     

    • Content-Type的作用

    该实体头的作用是让服务器告诉浏览器它发送的数据属于什么文件类型。
    例如:当Content-Type 的值设置为text/html和text/plain时,前者会让浏览器把接收到的实体内容以HTML格式解析,后者会让浏览器以普通文本解析.

    • Content-Disposition 的作用

    当Content-Type 的类型为要下载的类型时 , 这个信息头会告诉浏览器这个文件的名字和类型。
    在讲解这个内容时,张老师同时讲出了解决中文文件名乱码的解决方法,平常想的是使用getBytes() , 实际上应使用email的附件名编码方法对文件名进行编码,但IE不支持这种作法(其它浏览器支持) , 使用javax.mail.internet.*包的MimeUtility.encodeWord("中文.txt")的方法进行编码。
    Content-Disposition扩展头的例子:

    <%@ page pageEncoding="GBK" contentType="text/html;charset=utf-8" import="java.util.*,java.text.*" %>
    <%=DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.CHINA).format(new Date())
    %>
    <%
          response.setHeader("Content-Type","video/x-msvideo");
          response.setHeader("Content-Disposition", "attachment;filename=aaa.doc");
    %>

     

    Content-Disposition中指定的类型是文件的扩展名,并且弹出的下载对话框中的文件类型图片是按照文件的扩展名显示的,点保存后,文件以filename的值命名,保存类型以Content中设置的为准。
    注意:在设置Content-Disposition头字段之前,一定要设置Content-Type头字段。

    • Authorization头的作用

    Authorization的作用是当客户端访问受口令保护时,服务器端会发送401状态码和WWW-Authenticate响应头,要求客户机使用Authorization来应答。
    例如:
     

    <%@ page pageEncoding="GBK" contentType="text/html;charset=utf-8" import="java.util.*,java.text.*" %>
    <%=DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.CHINA).format(new Date())
    %>
    <%
    response.setStatus(401);
    response.setHeader("WWW-Authenticate", "Basic realm=/"Tomcat Manager Application/"");
    %>

    3.如何实现文件下载


    要实现文件下载,我们只需要设置两个特殊的相应头,它们是什么头?如果文件名带中文,该如何解决?

    两个特殊的相应头:

    ----Content-Type:       application/octet-stream

    ----Content-Disposition: attachment;filename=aaa.zip
    例如:
    response.setContentType("image/jpeg");response.setHeader("Content- Disposition","attachment;filename=Bluehills.jpg");

    如果文件中filename参数中有中文,则就会出现乱码。

    解决办法:

    (1)MimeUtility.encodeWord("中文.txt");//现在版本的IE还不行

    (2)new String("中文".getBytes("GB2312"),"ISO8859- 1");//实际上这个是错误的

    4. 测试并分析文件名乱码问题


    response.setHeader()下载中文文件名乱码问题
    response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));

    下载的程序里有了上面一句,一般在IE6的下载提示框上将正确显示文件的名字,无论是简体中文,还是日文。不过当时确实没有仔细测试文件名为很长的中文文件名的情况。现如今经过仔细测试,发现文字只要超过17个字,就不能下载了。分析如下:

    一. 通过原来的方式,也就是先用URLEncoder编码,当中文文字超过17个时,IE6 无法下载文件。这是IE的bug,参见微软的知识库文章 KB816868 。原因可能是IE在处理 Response Header 的时候,对header的长度限制在150字节左右。而一个汉字编码成UTF-8是9个字节,那么17个字便是153个字节,所以会报错。而且不跟后缀也不对.

    二. 解决方案:将文件名编码成ISO8859-1是有效的解决方案,代码如下:
    response.setHeader( "Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" ) );

    在确保附件文件名都是简体中文字的情况下,那么这个办法确实是最有效的,不用让客户逐个的升级IE。如果台湾同胞用,把gb2312改成big5就行。但现在的系统通常都加入了 国际化的支持,普遍使用UTF-8。如果文件名中又有简体中文字,又有繁体中文,还有日文。那么乱码便产生了。另外,在上Firefox (v1.0-en)下载也是乱码。

    三. 参看邮件中的中文附件名的形式,用outlook新建一个带有中文附件的邮件,然后看这个邮件的源代码,找到:
    Content-Disposition: attachment;
    filename="=?gb2312?B?0MK9qCDOxLG+zsS1tS50eHQ=?="

    用这个filename原理上就可以显示中文名附件,但是现在IE并不支持,Firefox是支持的。尝试使用 javamail 的MimeUtility.encode()方法来编码文件名,也就是编码成 =?gb2312?B?xxxxxxxx?= 这样的形式,并从 RFC1522 中找到对应的标准支持。

    折中考虑,结合了一、二的方式,代码片断如下:

    String fileName = URLEncoder.encode(atta.getFileName(), "UTF-8");
    /*
    * see http://support.microsoft.com/default.aspx?kbid=816868
    */
    if (fileName.length() > 150) {
    String guessCharset = xxxx
    //根据request的locale 得出可能的编码,中文操作系统通常是gb2312
    fileName = new String(atta.getFileName().getBytes(guessCharset), "ISO8859-1");
    }
    response.setHeader("Content-Disposition", "attachment; filename=" + fileName);


    编码转换的原理:

    首先在源程序中将编码设置成GB2312字符编码,然后将源程序按Unicode编码转换成字节码加载到内存中(java加载到内存中的字节码都是Unicode编码),然后按GB2312编码获得中文字符串的字节数组,然后生成按ISO8859-1编码形式的Unicode字符串(这时的4个字节就变成了8个字节,高位字节补零),

    当在网络中传输时,因为setHeader方法中的字符只能按ISO8859-1传输,所以这时候就又把Unicode字符转换成了ISO8859-1的编码传到浏览器(就是把刚才高位补的零全去掉),这时浏览器接收到的ISO8859-1码的字符因为符合GB2312编码,所以就可以显示中文了。

    5. jsp翻译成class时的编码问题


    记事本中代码块1:
    <%=
           "a中文".length()
    %>
    代码块2:
    <%@ page pageEncoding="gbk"%>
    <%=
           "a中文".length()
    %>
    为什么上面的输出值为5,改成下面的则输出3?
    因为上面的代码没有添加该文件的编码说明 , WEB应用程序在将jsp翻译成class文件时 , 把该字符串的内容按默认的保存方式指定的编码ASCII码来算的,在UTF-8中,原ASCII字符占一个字节,汉字占两个字节,对应两个字符,长度就变成了5 , 而下面的是GBK编码, 一个汉字和一个英文都对应一个字符,得到结果就为3.
    ]

    response.setHeader(...)文件名中有空格的时候
    String fileName = StringUtils.trim(file.getName());
    String formatFileName = encodingFileName(name);//在后面定义方法encodingFileName(String fileName); response.setHeader("Content-Disposition", "attachment; filename=" + formatFileName );
    //处理文件名中出现的空格  
    //其中%20是空格在UTF-8下的编码
     public static String encodingFileName(String fileName) {
      String returnFileName = "";
      try {
       returnFileName = URLEncoder.encode(fileName, "UTF-8");
       returnFileName = StringUtils.replace(returnFileName, "+", "%20");
       if (returnFileName.length() > 150) {
        returnFileName = new String(fileName.getBytes("GB2312"),
          "ISO8859-1");
        returnFileName = StringUtils
          .replace(returnFileName, " ", "%20");
       }
      } catch (UnsupportedEncodingException e) {
       e.printStackTrace();
       if (log.isWarnEnabled()) {
        log.info("Don't support this encoding ...");
       }
      }
      return returnFileName;
     }

     

    展开全文
  • setHeader方法全面复习

    2020-08-10 20:06:11
    setHeader方法的使用 文章目录setHeader方法的使用1.0 HTTP消息头1.1消息头的组成2.0 几个主要头文件作用3.0如何实现文件下载4.0测试并分析文件名乱码问题5.jsp翻译成class时的编码问题 1.0 HTTP消息头 一秒刷新...

    setHeader方法的使用

    1.0 HTTP消息头

    1. 一秒刷新页面一次 response.setHeader("refresh","1");

    2. 二秒跳到其他页面 response.setHeader("refresh","2;URL=otherPagename");

    3. 没有缓存:response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache");

    4. 设置过期的时间期限response.setDateHeader("Expires", System.currentTimeMillis()+自己设置的时间期限);

    5. 访问别的页面:response.setStatus(302); response.setHeader("location","url");

    6. 通知浏览器数据采用的压缩格式:response.setHeader("Content-Encoding","压缩后的数据");

    7. 高速浏览器压缩数据的长度:response.setHeader("Content-Length",压缩后的数据.length+"");

    8. 高速浏览器图片或视频:response.setHeader("Content-type","这个参数在tomcat里conf下的web.xml里面找");

    inputstream in= this.getServletContext.getResourceAsStream("/2.jpg");
    	int len=0;
    	byte buffer[]= new byte[1024]
    	outputStream out = response.getOutputStream();
    	while(len=in.read(buffer)>0){
    	 out.write(buffer,0,len)
    }
    
    1. 高速浏览器已下载的形式:response.setHeader("Content-disposition","attachment;filename=2.jpg");
    inputstream in= this.getServletContext.getResourceAsStream("/2.jpg");
    	int len=0;
    	byte buffer[]= new byte[1024]
    	outputStream out = response.getOutputStream();
    	while(len=in.read(buffer)>0){
     	out.write(buffer,0,len)
    }
    

    1.1消息头的组成

    (1)通用信息头

    即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma
    主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfer-Encoding , Upgrade
    (2)请求头
    用于在请求消息中向服务器传递附加信息,主要包括客户机可以接受的数据类型,压缩方法,语言,以及客户计算机上保留的信息和发出该请求的超链接源地址等.
    主要: Accept , Accept-Encoding , Accept-Language , Host ,
    (3)响应头
    用于在响应消息中向客户端传递附加信息,包括服务程序的名称,要求客户端进行认证的方式,请求的资源已移动到新地址等.
    主要: Location , Server , WWW-Authenticate(认证头)
    (4)实体头
    用做实体内容的元信息,描述了实体内容的属性,包括实体信息的类型,长度,压缩方法,最后一次修改的时间和数据的有效期等.
    主要: Content-Encoding , Content-Language , Content-Length , Content-Location , Content-Type
    (4)扩展头
    主要:Refresh, Content-Disposition

    2.0 几个主要头文件作用

    (1)Content-Type的作用
    该实体头的作用是让服务器告诉浏览器它发送的数据属于什么文件类型。
    例如:当Content-Type 的值设置为text/html和text/plain时,前者会让浏览器把接收到的实体内容以HTML格式解析,后者会让浏览器以普通文本解析.
    (2)Content-Disposition 的作用
    当Content-Type 的类型为要下载的类型时 , 这个信息头会告诉浏览器这个文件的名字和类型。
    在讲解这个内容时,张老师同时讲出了解决中文文件名乱码的解决方法,平常想的是使用getBytes() , 实际上应使用email的附件名编码方法对文件名进行编码,但IE不支持这种作法(其它浏览器支持) , 使用javax.mail.internet.包的MimeUtility.encodeWord(“中文.txt”)的方法进行编码。
    Content-Disposition扩展头的例子:

    <%@ page pageEncoding="GBK" contentType="text/html;charset=utf-8" import="java.util.,java.text." %>
    <%=DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.CHINA).format(new Date())
    %>
    <%
            response.setHeader("Content-Type","video/x-msvideo");
            response.setHeader("Content-Disposition","attachment;filename=aaa.doc");
      
    %>
    

    Content-Disposition中指定的类型是文件的扩展名,并且弹出的下载对话框中的文件类型图片是按照文件的扩展名显示的,点保存后,文件以filename的值命名,保存类型以Content中设置的为准。
    注意:在设置Content-Disposition头字段之前,一定要设置Content-Type头字段。
    (3)Authorization头的作用
    Authorization的作用是当客户端访问受口令保护时,服务器端会发送401状态码和WWW-Authenticate响应头,要求客户机使用Authorization来应答。
    例如:

    <%@ page pageEncoding="GBK" contentType="text/html;charset=utf-8" import="java.util.,java.text." %>
    <%=DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.CHINA).format(new Date())
    %>
    <%
    	response.setStatus(401);
    response.setHeader("WWW-Authenticate", "Basic realm=/"Tomcat Manager Application/"");
    %>
    

    3.0如何实现文件下载

    要实现文件下载,我们只需要设置两个特殊的相应头,它们是什么头?如果文件名带中文,该如何解决?
    两个特殊的相应头:

    • Content-Type: application/octet-stream

    • Content-Disposition: attachment;filename=aaa.zip

    例如:
    response.setContentType("image/jpeg");response.setHeader("Content- Disposition","attachment;filename=Bluehills.jpg");
    如果文件中filename参数中有中文,则就会出现乱码。
    解决办法:
    (1)MimeUtility.encodeWord(“中文.txt”);//现在版本的IE还不行
    (2)new String(“中文”.getBytes(“GB2312”),“ISO8859- 1”);//实际上这个是错误的

    4.0测试并分析文件名乱码问题

    response.setHeader()下载中文文件名乱码问题
    response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));
    

    ​ 下载的程序里有了上面一句,一般在IE6的下载提示框上将正确显示文件的名字,无论是简体中文,还是日文。不过当时确实没有仔细测试文件名为很长的中文文件名的情况。现如今经过仔细测试,发现文字只要超过17个字,就不能下载了。分析如下:
    通过原来的方式,也就是先用URLEncoder编码,当中文文字超过17个时,IE6 无法下载文件。这是IE的bug,参见微软的知识库文章 KB816868 。原因可能是IE在处理 Response Header 的时候,对header的长度限制在150字节左右。而一个汉字编码成UTF-8是9个字节,那么17个字便是153个字节,所以会报错。而且不跟后缀也不对.

    二. 解决方案:将文件名编码成ISO8859-1是有效的解决方案,代码如下:
    response.setHeader( “Content-Disposition”, “attachment;filename=” + new String( fileName.getBytes(“gb2312”), “ISO8859-1” ) );
    在确保附件文件名都是简体中文字的情况下,那么这个办法确实是最有效的,不用让客户逐个的升级IE。如果台湾同胞用,把gb2312改成big5就行。但现在的系统通常都加入了 国际化的支持,普遍使用UTF-8。如果文件名中又有简体中文字,又有繁体中文,还有日文。那么乱码便产生了。另外,在上Firefox (v1.0-en)下载也是乱码。

    三. 参看邮件中的中文附件名的形式,用outlook新建一个带有中文附件的邮件,然后看这个邮件的源代码,找到:
    Content-Disposition: attachment;
    filename="=?gb2312?B?0MK9qCDOxLG+zsS1tS50eHQ=?="

    用这个filename原理上就可以显示中文名附件,但是现在IE并不支持,Firefox是支持的。尝试使用 javamail 的MimeUtility.encode()方法来编码文件名,也就是编码成 =?gb2312?B?xxxxxxxx?= 这样的形式,并从 RFC1522 中找到对应的标准支持。
    折中考虑,结合了一、二的方式,代码片断如下:

    String fileName = URLEncoder.encode(atta.getFileName(), "UTF-8");
    /*
    * see http://support.microsoft.com/default.aspx?kbid=816868
    */
    if (fileName.length() > 150)
        {
        	String guessCharset = xxxx
        	//根据request的locale 得出可能的编码,中文操作系统通常是gb2312
        	fileName = new String(atta.getFileName().getBytes(guessCharset), "ISO8859-1");
        }
    response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
    

    编码转换的原理:

    首先在源程序中将编码设置成GB2312字符编码,然后将源程序按Unicode编码转换成字节码加载到内存中(java加载到内存中的字节码都是Unicode编码),然后按GB2312编码获得中文字符串的字节数组,然后生成按ISO8859-1编码形式的Unicode字符串(这时的4个字节就变成了8个字节,高位字节补零),

    当在网络中传输时,因为setHeader方法中的字符只能按ISO8859-1传输,所以这时候就又把Unicode字符转换成了ISO8859-1的编码传到浏览器(就是把刚才高位补的零全去掉),这时浏览器接收到的ISO8859-1码的字符因为符合GB2312编码,所以就可以显示中文了。

    5.jsp翻译成class时的编码问题

    记事本中代码块1:

    <%=
        "a中文".length()
    %>
        //代码块2:
    <%@ page pageEncoding="gbk"%>
    <%=
        "a中文".length()
    %>
    

    为什么上面的输出值为5,改成下面的则输出3?
    因为上面的代码没有添加该文件的编码说明 , WEB应用程序在将jsp翻译成class文件时 , 把该字符串的内容按默认的保存方式指定的编码ASCII码来算的,在UTF-8中,原ASCII字符占一个字节,汉字占两个字节,对应两个字符,长度就变成了5 , 而下面的是GBK编码, 一个汉字和一个英文都对应一个字符,得到结果就为3.

    response.setHeader(...)文件名中有空格的时候
    String fileName = StringUtils.trim(file.getName());
    String formatFileName = encodingFileName(name);//在后面定义方法encodingFileName(String fileName); response.setHeader("Content-Disposition", "attachment; filename=" + formatFileName );
    

    //处理文件名中出现的空格
    //其中%20是空格在UTF-8下的编码

     public static String encodingFileName(String fileName) {
     String returnFileName = "";
     try {
      	returnFileName = URLEncoder.encode(fileName, "UTF-8");
      	returnFileName = StringUtils.replace(returnFileName, "+", "%20");
      if (returnFileName.length() > 150) {
          returnFileName = new String(fileName.getBytes("GB2312"),
           "ISO8859-1");
          returnFileName = StringUtils
           .replace(returnFileName, " ", "%20");
     	 }
     } catch (UnsupportedEncodingException e) {
          e.printStackTrace();
          if (log.isWarnEnabled()) {
          log.info("Don't support this encoding ...");
      	}
     }
    	 return returnFileName;
     }
    
    
    展开全文
  • 响应response.setHeader方法

    千次阅读 2019-06-23 16:38:24
    1、一秒刷新页面一次 response.setHeader(“refresh”,“1”); 2、五秒跳到其他页面 response.setHeader("refresh","5;URL=otherPagename"); 3、设置禁用缓存: response.setHeader("expires", "0"); response.set...

    1、一秒刷新页面一次 response.setHeader(“refresh”,“1”);

    2、五秒跳到其他页面 response.setHeader("refresh","5;URL=otherPagename");

    3、设置禁用缓存:
    response.setHeader("expires", "0");
    response.setHeader("cache-control", "no-cache");
    response.setHeader("pragma", "no-cache");

    4、设置过期的时间期限  

    response.setDateHeader("Expires", System.currentTimeMillis()+自己设置的时间期限);

    5、访问别的页面:response.setStatus(302); response.setHeader("location","url");

    6、下载文件

    Content-Type的作用:该实体头的作用是让服务器告诉浏览器它发送的数据属于什么文件类型。

    例如:当Content-Type 的值设置为text/html和text/plain时,前者会让浏览器把接收到的实体内容以HTML格式解析,后者会让浏览器以普通文本解析.

    Content-Disposition 的作用:当Content-Type 的类型为要下载的类型时 , 这个信息头会告诉浏览器这个文件的名字和类型

    response.setHeader("Content-Type","video/x-msvideo");

    response.setHeader( "Content-Disposition", "attachment;filename=" + new String( “文件名称”.getBytes("gb2312"), "ISO8859-1" ) );


    7、通知浏览器数据采用的压缩格式:response.setHeader("Content-Encoding","压缩后的数据"); 

    高速浏览器压缩数据的长度:response.setHeader("Content-Length",压缩后的数据.length+"");


    8、高速浏览器图片或视频:response.setHeader("Content-type","这个参数在tomcat里conf下的web.xml里面找");

    inputstream in= this.getServletContext.getResourceAsStream("/2.jpg");
    int len=0;
    byte buffer[]= new byte[1024]

    outputStream out = response.getOutputStream();

    while(len=in.read(buffer)>0){
      out.write(buffer,0,len)
    }


    9、高速浏览器已下载的形式:

    response.setHeader("Content-disposition","attachment;filename=2.jpg");

    inputstream in= this.getServletContext.getResourceAsStream("/2.jpg");
    int len=0;
    byte buffer[]= new byte[1024]

    outputStream out = response.getOutputStream();

    while(len=in.read(buffer)>0){
      out.write(buffer,0,len)
    }


    常见的Content-Type

    序号

    内容类型

    文件扩展名

    描述

    1

    application/msword

    doc

    Microsoft Word

    2

    application/octet-stream bin

    dms lha lzh exe class

    可执行程序

    3

    application/pdf

    pdf

    Adobe Acrobat

    4

    application/postscript

    ai eps ps

    PostScript

    5

    appication/powerpoint

    ppt

    Microsoft Powerpoint

    6

    appication/rtf

    rtf

    rtf 格式

    7

    appication/x-compress

    z

    unix 压缩文件

    8

    application/x-gzip

    gz

    gzip

    9

    application/x-gtar

    gtar

    tar 文档 (gnu 格式 )

    10

    application/x-shockwave-flash

    swf

    MacroMedia Flash

    11

    application/x-tar

    tar

    tar(4.3BSD)

    12

    application/zip

    zip

    winzip

    13

    audio/basic

    au snd

    sun/next 声音文件

    14

    audio/mpeg

    mpeg mp2

    Mpeg 声音文件

    15

    audio/x-aiff

    mid midi rmf

    Midi 格式

    16

    audio/x-pn-realaudio

    ram ra

    Real Audio 声音

    17

    audio/x-pn-realaudio-plugin

    rpm

    Real Audio 插件

    18

    audio/x-wav

    wav

    Microsoft Windows 声音

    19

    image/cgm

    cgm

    计算机图形元文件

    20

    image/gif

    gif

    COMPUSERVE GIF 图像

    21

    image/jpeg

    jpeg jpg jpe

    JPEG 图像

    22

    image/png

    png

    PNG 图像


    1. application/x-www-form-urlencoded

    最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded方式提交数据。 

    2. text/xml

    3.application/json

    4. multipart/form-data

    使用表单上传文件时,必须让 form 的 enctyped 等于这个值。 
    并且Http协议会使用boundary来分割上传的参数





    展开全文
  • setHeader的用法大全

    千次阅读 2018-12-28 16:23:33
    1、一秒刷新页面一次 response.setHeader("refresh","1"); 2、二秒跳到其他页面 response.setHeader("refresh","2;URL=otherPagename"); 3、没有缓存: response.set...
  • response.setHeader()方法设置http文件头的值

    千次阅读 热门讨论 2018-05-19 21:35:42
    response.setHeader()下载中文文件名乱码问题 收藏 1. HTTP消息头 (1)通用信息头 即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma 主要: Cache-Control , ...
  • response.setHeader的各种用法

    千次阅读 2021-03-07 15:02:09
    1、一秒刷新页面一次 response.setHeader(“refresh”,“1”); 2、二秒跳到其他页面 response.setHeader(“refresh”,“2;URL=otherPagename”); 3、没有缓存: response.setHeader(“Pragma”, “No-cache”); ...
  • response.setHeader()几个主要头的作用

    千次阅读 2018-03-23 14:45:45
    response.setHeader()下载中文文件名乱码问题 收藏 1. HTTP消息头(1)通用信息头即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma主要: Cache-Control , Connection , ...
  • 当前位置:我的异常网» Web前端»response.setHeader()步骤设置http文件头的值response.setHeader()步骤设置http文件头的值www.myexceptions.net网友分享于:2015-08-26浏览:3次response.setHeader()方法设置http...
  • setHeader的参数种类

    千次阅读 2016-07-22 22:40:17
    (1)设置刷新时间Refresh response.setIntHeader("Refresh", 1);//单位是秒 response.setHeader("Refresh", "2;URL=/day08_00_response/login.html");//单位是秒 ...resp.setHeader("Content-Disposition", "attac
  • response.setheader无效的原因之一

    千次阅读 2018-11-12 18:09:41
    在afterCompletion 或 postHandle中使用了response.setHeader("token", token);  初衷是想在方法执行完成后,把新的jwt令牌返回给调用方。 但是实际返回中获取不到set的值。   原因是:response的...
  • doFilter()方法相当于放行,已经放行了再去set*肯定是无效的,response的content已经写到网络流中了 response状态变为committed的时候,再去set*属性是无效的 https://www.cnblogs.com/Leroscox/p/8305141.htm...
  • response.setHeader参数、用法的介绍

    千次阅读 2017-12-07 16:05:09
    response.setHeader 是用来设置返回页面的头 meta 信息, 使用时 response.setHeader( name, contect ); meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的与中  1、用以说明生成工具(如...
  • 在ligerui 官网看了下例子,发现setHeader方法不起作用,然后看了下该方法的代码,就自己写了替代方法。 var navtab = null; $(function () { navtab = $("#navtab1").ligerTab({ onBeforeSele
  • //设置文件名  String filename = "... //response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(filename, "utf-8"));  或者  ...
  • HttpClient中addHeader与setHeader的区别

    千次阅读 2019-07-22 18:25:58
    总结: addHeader:添加一个新的请求头...setHeader:设置一个请求头字段,有则覆盖,无则添加。 代码: @Test public void test16(){ HttpGet httpGet = new HttpGet(); httpGet.addHeader("a","A1");...
  • response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));  
  • 一秒刷新页面一次 response.setHeader("refresh","1");二秒跳到其他页面 response.setHeader("refresh","2;URL=otherPagename");没有缓存:response.setHeader("Pragma", "No-cache");response.setHeader("Cache-...
  • 设置应答头最常用的方法是HttpServletResponse的setHeader,该方法有两个参数,分别表示应答头的名字和值。和设置状态代码相似,设置应答头应该在发送任何文档内容 之前进行。 setDateHeader方法和setIntHeadr方法...
  • response里的setHeader用法

    千次阅读 2017-09-25 14:23:53
    response.setHeader()的用法 1. HTTP消息头 (1)通用信息头 即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma 主要: Cache-Control , Connection , ...
  • 重定向 / 转发 ...其中 SendRedirect,setHeader 属于重定向方式,而 forward 属于转发方式 重定向(sendRedirect,setHeader) 1.重定向到指定URL,是客户端跳转 2.地址栏中的地址将会改变,变成重定向...
  • //用setHeader和addHeader随便随便设置一个头部 response.setHeader("EL", "1000"); response.setHeader("EL", "2000"); response.addHeader("EL", "4000"); response.addHeader("EL", "5000"); response.add...
  • response.setHeader()的用法

    千次阅读 2017-11-26 12:10:18
    当在网络中传输时,因为setHeader方法中的字符只能按ISO8859-1传输,所以这时候就又把Unicode字符转换成了 ISO8859-1的编码传到浏览器(就是把刚才高位补的零全去掉),这时浏览器接收到的ISO8859-1码的字符因为符合...
  • response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName, "UTF-8"));//设置文件名 } catch (UnsupportedEncodingException e) { e.printStackTrace(); } response....
  • res.setHeader()和res.writeHead()

    千次阅读 2020-05-06 10:02:08
    res.setHeader()和res.writeHead() 事先声明: 这是我自己得出来的结论,如有不对,还望告知 ???? 在node.js中,http协议如果不设置响应头,中文的话在客户端浏览器是会乱码的,那么设置响应头的目的是什么,又如何...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 330,853
精华内容 132,341
关键字:

setheader方法