服务器响应的生成:HTTP响应报头——HttpServletResponse接口的应用

本文详细介绍了HTTP响应报头的作用,特别是在Servlet中的应用。重点讲解了如何使用HttpServletResponse接口设置响应报头,包括Location、Content-Type等常用报头。此外,还探讨了如何构建Excel电子表格、维持servlet状态、利用响应报头生成图像和文字,以及Servlet数据存储方式和Referer响应报头的应用。
摘要由CSDN通过智能技术生成

一,响应报头  

       响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息    

        常用的响应报头    

                 Location     

                 Content-Type    

                 Referer      

 二,在Servlet中设置HTTP响应报头HttpServletResponse接口

              使用HttpServletResponse的setHeader方法,参数为报头名字和报头的值。  和设置状态代码一样。必须在返回实际的文档之前指定相关的报头。    

              setDateHeader(String headerName,Long 毫秒数):设置含有日期和整数的报头。 

              setIntHeader(String header,int headerValue):将int类型的状态代码转换为String插入报头。

              Http容许相同的报头多次出现,上面3中方法将替换任何同名的已有报头。而使 addHeader,addDateHeader和addIntHeader方法添加一个报头。  可以使用containsHeader发发进行检查是否已经设置了特定的报头。

              HttpServletResponse常用的设置报头的方法。   

                       setContentType(String mimeType)方法设置Content-type报头。

                       setContentLength(int length)发发设置Content-length报头,用于浏览器持续性HTTP连接。   

                       addCookie(Cookie c)方法:向set-cookie报头插入一个cookie。   

                      sendRedirect(String url)方法,设置设置状态码和Location报头。

三,构建Excel电子表格 (响应报头Content-type的应用)  

             Excel至少接受3种不同格式的输出:用制表符分隔的数据,HTML表格和本地二进制格式。  使用Content-type响应报头告诉客户程序正在发送电子表格。使用setContentType设置Content-type响应头。Excel表格的MIME类型是application/vnd.ms-excel    

            使用制表符分隔的数据生成电子表格:  

                       response.setContentType(“application/vnd.ms-excel;charset=gb2312”); 

                       PrintWriter out = response.getWriter();   

                       输出含有制表符/t的一些数据,不需要输出HTML标签。

四,servlet状态的维持和页面的自动重载。(servlet数据存储方式和Referer响应报头的应用)  

            servlet状态的维持,对于servlet或jsp需要较长时间来处理的请求:    

                      1,跨请求存储数据,维护状态     不专属任意客户的数据,存储在servlet的字段中。     对于用户专属数据,存储在HttpSession对象中。     对于其他servlet或jsp需要用到的数据,存储在ServletContext中。   

                       2,在请求发送给客户程序后,继续进行处理。     启动一个线程响应请求,响应之后自动结束线程。另个线程将继续保持运行处理请求,为保持服务器性能,将继续处理请求的线程优先级调低。   

                       3,在需要较长时间处理的请求处理完后,指示浏览器请求更新。     由于浏览器不维护与服务器之间的连接,服务器需要主动将结果发送给浏览器。     所以使用Referer响应报头,指示浏览器请求更新。

五,使用Servlet生成图像和文字(响应报头Content-Type的应用)  

            (1),把图像文件写入磁盘并提供连接。注意写在您的web服务器目录树下(不是在服务器磁盘的任何地方都行)。   

                       在一些servlet引擎设置中,servlet的目录不能通过web server进入,只能通过servlet引擎。   也就是说您不能通过http:// URL登录,您可以向您的servlet输出的HTML传送IMG标签,或传送HTTP重新定位来让浏览器直接下载图象。     

(CookieDetector (http://www.purpletech.com/code/CookieDetector.html) has an example, with source code, of sending a redirect.)     (CookieDetector (http://www.purpletech.com/code/CookieDetector.html)   有一个例子,有传送重新定位源代码。    图象可以被保存在浏览器的cache中,当再次请求时不必重新运行servlet,因此减轻了服务器的负担。     

                       图象不能从磁盘中删除,因此您必须写一段程序来定期清理图象目录,或进入目录 后用手工删除。(或买一张大点的硬盘)

             (2),用Java 2 JPEGCodec类,或Acme Labs' GIFEncoder类将Java Graphics 转换成图象文件或二进制流。   

                      在<img>的src属性中调用实现上述功能的Servlet并传递相关的参数,如背景图片路径、输出文字、文字输

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值