本文目录
- response.setdateheader是什么意思
- response.setHeader问题
- response.setHeader
- java web怎么添加response.setheader
- response.setHeader(“refresh“,“2;URL=login.jsp“)
- jsp,我在做上传文件的时候,response.setHeader()什么意思
- 为什么response.setheader方法含中文 乱码
- response.setheader方法有什么用
- JSP小白问题12:求一个对response.setHeader参数、用法的介绍
response.setdateheader是什么意思
这个,是设置页面缓存的防止JSP或者Servlet中的输出被浏览器保存在缓冲区中。《%response.setHeader(“Cache-Control”,”no store”);//HTTP 1.1response.setHeader(“Pragma”,”no store”);//HTTP 1.0response.setDateHeader(“Expires”,0);//在代理服务器端防止缓冲%》
response.setHeader问题
禁用IE缓存HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。普通报头中的Cache-Control用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.0使用的类似的报头域为Pragma。请求时的缓存指令包括:no-cache(用于指示请示或响应消息不能缓存)、no-store、max-age、max-stale、min-fresh、only-if-cached;响应时的缓存指令包括:public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age、s-maxage。例:为了指示IE浏览器(客户端)不要缓存页面,服务器端的jsp程序可以编写如下:response.setHeader(“Cache-Control”, “no-cache”);//response.setHeader(“Pragma”, “no-cache”);作用相当于上行代码,通常两者合用Expires实体报头域给出响应过期的日期和时间。为了让代理服务器或浏览器在一段时间以后更新缓存中(再次访问曾访问过的页面时,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期时间。例:Expires:Thu,15 Sep 2006 16:23:12 GMTHTTP1.1的客户端和缓存必须将其他非法的日期格式(包括0)看作已经过期。如:为了让浏览器不要缓存页面,也可以利用Expires实体报关域,设置为0,jsp程序如下:response.setDateHeader(“Expires”, “0”);
response.setHeader
setHeader(String name,String value)设置指定名字的HTTP文件头的值,如果该值已经存在,则新值会覆盖原有的旧值。//摘自《XX》书
java web怎么添加response.setheader
response.setHeader()的用法
1. HTTP消息头
(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
(5)扩展头
主要:Refresh, Content-Disposition
2. 几个主要头的作用
(1)Content-Type的作用
该实体头的作用是让服务器告诉浏览器它发送的数据属于什么文件类型。
例如:当Content-Type 的值设置为text/html和text/plain时,前者会让浏览器把接收到的实体内容以HTML格式解析,后者会让浏览器以普通文本解析.
(2)Content-Disposition 的作用
当Content-Type 的类型为要下载的类型时 , 这个信息头会告诉浏览器这个文件的名字和类型。
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.如何实现文件下载
要实现文件下载,我们只需要设置两个特殊的相应头,它们是什么头?如果文件名带中文,该如何解决?
两个特殊的相应头:
----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“));
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(“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 byteoutputStream 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 byteoutputStream out = response.getOutputStream();while(len=in.read(buffer)》0){ out.write(buffer,0,len)}
response.setHeader(“refresh“,“2;URL=login.jsp“)
response.setHeader(“refresh“,“2;URL=login.jsp“)是定时刷新页面,跳转的目标地址是login.jsp。注意:Header 中的Refresh 属性是 自动的Get目标页面。也可以在url后面增加参数:在 Refresh属性中 的 URL属性中加入QueryString。 response.setHeader(“refresh“,“5;url= 目标网页?alm_status=XXX&ecCode=YY“)
jsp,我在做上传文件的时候,response.setHeader()什么意思
设置response的头报文数据,content-disposition为浏览器另存为.attachment以附件形式下载,filename下载后的文件名 new String(str.getBytes(“gb2312“),“iso8859-1“)文件名从iso8859-1编码转换为gb2312编码.
为什么response.setheader方法含中文 乱码
f(isset($_POST[’submit’])&&$_POST[’submit’]==’提交’){ 3 //判断是否是提交过来的 4 $intext = $_POST[’intext’]; 5 if($intext!=null||$intext!=’’){ 6 $link = mysql_connect(“localhost“, “root“, “123456“); 7 //数据库配置信息 第一个参数数据库位置第二个是用户名第三个是密码 8 mysql_select_db(“szn_test“); 9 //设置要使用的数据库 10 $sql = “select * from demo where res = ’“.$intext.“’“;
response.setheader方法有什么用
response.setHeader()的用法 1. HTTP消息头 (1)通用信息头 即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma 主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfer-Encoding , 。
JSP小白问题12:求一个对response.setHeader参数、用法的介绍
response.setHeader 是用来设置返回页面的头 meta 信息,使用时 response.setHeader( name, contect );meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的《head》与《/head》中1、《meta name=“Generator“ contect=““》用以说明生成工具(如Microsoft FrontPage 4.0)等; 2、《meta name=“KEYWords“ contect=““》向搜索引擎说明你的网页的关键词; 3、《meta name=“DEscription“ contect=““》告诉搜索引擎你的站点的主要内容; 4、《meta name=“Author“ contect=“你的姓名“》告诉搜索引擎你的站点的制作的作者; 5、《meta name=“Robots“ contect= “all|none|index|noindex|follow|nofollow“》 其中的属性说明如下: 设定为all:文件将被检索,且页面上的链接可以被查询; 设定为none:文件将不被检索,且页面上的链接不可以被查询; 设定为index:文件将被检索; 设定为follow:页面上的链接可以被查询; 设定为noindex:文件将不被检索,但页面上的链接可以被查询; 设定为nofollow:文件将不被检索,页面上的链接可以被查询。