servlet和jsp核心编程(第2版)第七章服务器响应的生成:HTTP响应报头学习笔记

[size=x-large]第七章:服务器响应的生成:HTTP响应报头[/size]
为了让servlet发挥最大的效力,我们不仅需要知道如何生成文档,还需要知道如何有效和使用状态行和响应报头。
[size=large]一[/size]、在servlet中设置响应的报头
setHeader(String headerName,String headerValue);setDateHeader(String header,long millseconds);setIntHeader(String headerName,int headerValue);
当然,我们不仅可以设置报头,我们也可以添加内容到已有的报头,addHeader(),addDateHeader(),addIntHeader();
[size=large]二[/size]、理解HTTP1.1响应报头。
[size=medium]1[/size].如果你编写的servlet的行为只依赖于HTTP1.1中提供的响应报头,那么在编写时要极为小心,一些旧的浏览器只支持HTTP1.0,最好在使用HTTP1.1专有的报头之前,用request.getRequestProtocol明确的检查HTTP的版本。
具体响应报头为:
<status line>
<headers>
<blank line>
[<response-body>]

具体实例可参见[url]http://wenku.baidu.com/view/31d9151a6bd97f192279e9d7.html[/url]
每种响应报头可参见:
[url]http://guafei.iteye.com/blog/1111078[/url] 或 [url]http://onehao.iteye.com/blog/806395[/url]
[size=large]三[/size]、构建excel电子表格
		response.setContentType("application/vnd.ms-excel");
PrintWriter out = response.getWriter();
out.println("\tQ1\tQ2\tQ3\tQ4\tQ5\ttotal");
out.println("Apples\t41\t42\t43\t65\t43\t=sum(b2:f2)");
out.println("Oranges\t21\t34\t54\t33\t51\t=sum(b3:f3)");

这里的\t代表制表符,而Q1和Q2之间就相差这一个制表符,sum(b2:f2)就是统计第二行的b列到f列的内容。
[size=large]四[/size]、servlet状态的持续以及页面的自动重载。
[size=medium]1[/size].对于不专属于任意客户的数据,可以将其存储在servlet的字段(实例变量中)中,对于用户专属的数据,可以将其村春在HttpSession对象中,对于其他的servlet和jsp页面需要用到的数据,可以将它存储在ServletContext中。ServletContext由Web应用中所有的servlet和jsp页面共享。
[size=medium]2[/size].一种在请求发送给用户之后,保持运算继续进行的方式。只需启动一个线程,系统为了应答请求而启动的线程。在相应之后自动结束。
[size=medium]3[/size].一种在更新的结果就绪后,是浏览器得到它的方式。并不维护一个与服务器之间的保持打开的连接,所以,服务器想要将新的结果发送给浏览器并不容易,取而代之,应该指示浏览器请求更新,这就是Refresh相应报头的用途。
[size=large]五[/size]、使用servlet生成JPEG图像
[size=medium]1[/size].通知浏览器它们正在发送的内容类型。使用setContentType方法设置Content-Type响应报头,来完成这项任务。
[size=medium]2[/size].以恰当的格式发送输出。不同的文档类型,这个格式也会有所不同,但大多数情况下发送的是二进制数据,而非发送HTML文档时所用的字符串,因此,servlet一般使用getOutputStream方法获取原始的输出流,而非使用getWriter获取PrintWriter。将这两步放在一起,生成非HTML内容的servlet一般在doGet或doPost方法中包含如下的一段语句:
response.setContentType("type/subtype");
OutputStream out = response.getOutputStream();
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值