2005年10月21日星期五

动态构造返回文本、图像复合内容

不知道怎样更好地表达,想要实现的目标大致是这样的:
当用户请求时,服务端(Servlet)能够实时生成响应内容(包括文本、图像) ,并能够直接通过response对象的输出流将所有响应内容返回给用户。
这里有两点疑问:一是HTTP似乎规定一个响应只能指定一种content-type类型,也就是说文本相应内容和图像相应内容必须分别返回,是这样吗?二是当返回内容类型为image/*的图像数据时,如何才能嵌入文本页面?
检索。
  • 一个课程片断讲述了HTTP Response Header的设置,包括图像响应数据的生成发送流程;
  • Orion应用服务器的tutorial教程中包含很多使用Java进行Web开发的基础知识,如Filter的实现等;
  • 这一个页面演示了实时生成图像的脚本代码以及如何使用此脚本的页面,就是它给了我解决上面第二个疑问的启示;
  • Sun的开发者论坛中有人提出了同样的问题,并且有了明确的回答,验证了我的想法;
  • 还得到一篇介绍如何用Servlet实现图像处理相关功能的不错的文章。
总之,要实现这一目标,可以首先实现一个返回文本内容的Servlet:
//设置内容类型out.setContentType("text/html");
//输出文本内容
//在需要显示图像处输出
然后实现返回图像数据的Servlet:
//设置内容类型out.setContentType("image/*"); JPEG、PNG等
//绘制图像,使用BufferedImage、Graphics等
//将图像数据写到输出流ImageIO.write(img, "jpg", out);

OK.

没有评论: