Servlet 06响应头信息

本文介绍了如何使用Java Servlet实现动态响应Excel文件、JPEG图片的方法,并展示了如何设置HTTP响应头实现网页定时刷新。

响应头信息:

协议,状态码,header......

setHeader设置响应头信息

设置内容类型,如word,excel,txt等等

1.构建excel电子表格

代码如下:

  1. public void doGet(HttpServletRequest request, HttpServletResponse response)  
  2.             throws ServletException, IOException {  
  3.             response.setContentType("application/vnd.ms-excel");  
  4.         PrintWriter out = response.getWriter();  
  5.           out.println("\tQ1\tQ2\tQ3\tQ4\tTotal");  
  6.           out.println("Apples\t78\t87\t92\t29\t=SUM(B2:E2)");  
  7.           out.println("Oranges\t77\t86\t93\t30\t=SUM(B3:E3)");  
  8.           
  9.     }  
  10.   
  11.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  12.             throws ServletException, IOException {  
  13.       doGet(request,response);  
  14.             
  15.     }  
public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
			response.setContentType("application/vnd.ms-excel");
	    PrintWriter out = response.getWriter();
		  out.println("\tQ1\tQ2\tQ3\tQ4\tTotal");
		  out.println("Apples\t78\t87\t92\t29\t=SUM(B2:E2)");
		  out.println("Oranges\t77\t86\t93\t30\t=SUM(B3:E3)");
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
      doGet(request,response);
		  
	}

2.动态生成jpeg图片

代码内容如下:

  1.          public void doGet(HttpServletRequest request, HttpServletResponse response)  
  2.         throws ServletException, IOException {  
  3.       //响应动态图片  
  4.       response.setContentType("image/jpeg");                                               //设置响应头响应内容类型为图片  
  5.   
  6.                   /*this.getClass().getClassLoader().getResourceAsStream()路径采用相对路径直接可以从工程的path路径去找。  
  7.        * 这里name是资源的类路径,它是相对与“/”根路径下的位置。getResource得到的是一个URL对象来定位资源,  
  8.        * 而getResourceAsStream取得该资源输入流的引用保证程序可以从正确的位置抽取数据  
  9.        * */  
  10.       InputStream in = this.getClass().getClassLoader().getResourceAsStream("girl.jpeg");  //获得输入流图片  
  11.       int len = in.available();                                                            //统计字节长度  
  12.       byte[] buffer = new byte[len];  
  13.       in.read(buffer);                                                                     //读取字符节  
  14.       OutputStream out = response.getOutputStream();                                       //输出流  
  15.       out.write(buffer);                                                                   //向输出流中写入字节信息  
  16.       out.flush();  
  17.       out.close();  
  18. }  
  19.   
  20. public void doPost(HttpServletRequest request, HttpServletResponse response)  
  21.         throws ServletException, IOException {  
  22.         doGet(request,response);  
  23.         
  24. }  
          public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		  //响应动态图片
		  response.setContentType("image/jpeg");                                               //设置响应头响应内容类型为图片

                   /*this.getClass().getClassLoader().getResourceAsStream()路径采用相对路径直接可以从工程的path路径去找。
		   * 这里name是资源的类路径,它是相对与“/”根路径下的位置。getResource得到的是一个URL对象来定位资源,
		   * 而getResourceAsStream取得该资源输入流的引用保证程序可以从正确的位置抽取数据
		   * */
		  InputStream in = this.getClass().getClassLoader().getResourceAsStream("girl.jpeg");  //获得输入流图片
		  int len = in.available();                                                            //统计字节长度
		  byte[] buffer = new byte[len];
		  in.read(buffer);                                                                     //读取字符节
		  OutputStream out = response.getOutputStream();                                       //输出流
		  out.write(buffer);                                                                   //向输出流中写入字节信息
		  out.flush();
		  out.close();
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
         doGet(request,response);
		  
	}

3.定时刷新页面

代码内容如下:

  1.              //3.定时刷新页面  
  2. response.setHeader("refresh", "1");//每隔1秒刷新一次  
  3. response.setContentType("text/html;charset=gbk");  
  4. PrintWriter out = response.getWriter();  
  5. out.println("<!DOCTYPE HTML>");  
  6. out.println("<html>");  
  7. out.println("<head><title>Refresh Servlet</title></head>");  
  8. out.println("<body>");  
  9. out.print("当前刷新时间为:");  
  10. out.print(new Date().toLocaleString());  
  11. out.println("</body>");  
  12. out.println("</html>");  
                 //3.定时刷新页面
		  response.setHeader("refresh", "1");//每隔1秒刷新一次
		  response.setContentType("text/html;charset=gbk");
		  PrintWriter out = response.getWriter();
		  out.println("<!DOCTYPE HTML>");
		  out.println("<html>");
		  out.println("<head><title>Refresh Servlet</title></head>");
		  out.println("<body>");
		  out.print("当前刷新时间为:");
		  out.print(new Date().toLocaleString());
		  out.println("</body>");
		  out.println("</html>");
比如一个直播NBA视频,当前时间两队的比分的显示。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值