【程序编程相关:JSP由浅入深(12)表单编辑】
作 者 : 仙人掌工作室【推荐阅读:JSP编程进度条设计实例】
web服务器的http应答一般由以下几项构成:一个状态行,一个或多个应答头,一个空行,内容文档.设置http应答头往往与设置状态行中的状态代码结合起来.例如,有好几个表示“文档位置已经改变”的状态代码都伴随着一个location头,而401(unauthorized)状态代码则必须伴随一个www-authenticate头. 【扩展信息:JSP语法(8)——<jsp:fo】
8.1 http应答头概述然而,即使在没有设置特殊含义的状态代码时,指定应答头也是很有用的.应答头可以用来完成:设置cookie,指定修改日期,指示浏览器按照指定的间隔刷新页面,声明文档的长度以便利用持久http连接,……等等许多其他任务.
设置应答头最常用的方法是httpservletresponse的setheader,该方法有两个参数,分别表示应答头的名字与值.与设置状态代码相似,设置应答头应该在发送任何文档内容之前进行.
setdateheader方法与setintheadr方法专门用来设置包含日期与整数值的应答头,前者避免了把java时间转换为gmt时间字符串的麻烦,后者则避免了把整数转换为字符串的麻烦.
httpservletresponse还提供了许多设置常见应答头的简便方法,如下所示:
setcontenttype:设置content-type头.大多数servlet都要用到这个方法.
setcontentlength:设置content-length头.对于支持持久http连接的浏览器来说,这个函数是很有用的. addcookie:设置一个cookie(servlet api中没有setcookie方法,因为应答往往包含多个set-cookie头). 另外,如上节介绍,sendredirect方法设置状态代码302时也会设置location头. 8.2 常见应答头及其含义有关http头详细与完整的说明,请参见http://www.w3.org/protocols/规范.
应答头 说明
allow 服务器支持哪些请求方法(如get.post等). content-encoding 文档的编码(encode)方法.只有在解码之后才可以得到content-type头指定的内容类型.利用gzip压缩文档能够显著地减少html文档的下载时间.java的gzipoutputstream可以很方便地进行gzip压缩,但只有unix上的netscape与windows上的ie 4.ie 5才支持它.因此,servlet应该通过查看accept-encoding头(即request.getheader("accept-encoding"))检查浏览器是否支持gzip,为支持gzip的浏览器返回经gzip压缩的html页面,为其他浏览器返回普通页面. content-length 表示内容长度.... 下一页