首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>java>Java基础>正文

如何在JSP页面发送一个动态图像

http://www.oklinux.cn  2008-01-20  来源: 赛迪网 dxaw  会员收藏  游客收藏  【 】 

当一个web页面带有image/jpeg (或者其他的图像格式)的MIME类型被发送时,你的浏览器将那个返回结果当作一个图像,然后浏览器显示图像,作为页面的一部分或者完全作为图像自身。要为你的jsp页面设置MIME类型,你需要设置页面的contentType属性:

<%@ page contentType="image/jpeg" ... %>

然后你需要创建一个BufferedImage绘制你的动态图像:

BufferedImage image = new BufferedImage(width,height, BufferedImage.TYPE_INT_RGB);

创建完一个BufferedImage后,你需要得到图形环境进行绘制,一个Graphics或者Graphics2D对象:

Graphics g = image.getGraphics(); 
// or 
Graphics2d g2d = image.createGraphics();

从现在起你就可以绘制图像内容了。对图形环境绘制就会画到BufferedImage。最开始这个图像都是黑色的,因此用你希望的背景颜色填充图像是一个不错的主意,然后,当你完成图像的绘制,你需要dispose图形环境:

g.dispose(); 
// or 
g2d.dispose();

一旦完成图像的绘制,你在response中返回那个图像。你可以使用非标准的com.sun.image.codec.jpeg包中的JPEGImageEncoder类编码图像,或者假如你使用JDK1.4,你可以使用标准的ImageIO类。在使用JPEGImageEncoder时有一个技巧,你必须从ServletResponse取来ServletOutputStream而不能使用隐含的JSP输出变量out。

ServletOutputStream sos = response.getOutputStream(); 
JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(sos);
encoder.encode(image); 
// or 
ImageIO.write(image, "JPEG", out);

这里有一个从所有的可能方案中(例如g.dispose();或者g2d.dispose();)选取的一个完整的范例.这个例子使用Graphics对象绘制一个随机的多边形,图像通过JPEGImageEncoder绘制,你可以自由设置多边形的顶点数得到更复杂的外形,换言之,有更多顶点和边。

要运行这个范例,将从"<%@"到最后一个"%>"之间的jsp代码放到一个名为image.jsp的文件中,将那个文件放到你的web服务器可以找到的地方,在使用Tomcat的情况下是ROOT目录,启动Tomcat,访问http://localhost:8080/image.jsp。


上一篇:使用AJAX技术实现网页无闪自动局部刷新   下一篇:用JSP JavaScript打造二级级联下拉菜单


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·使用AJAX技术实现网页无闪自动局部刷新
·用JSP JavaScript打造二级级联下拉菜单
·用Struts向MYSQL数据库中储存图片实例
·在JSP环境中配置使用fckeditor详细讲解
·JSP JavaBean Servlet工作原理实例讲解
·详细讲解在Hibernate中检索策略的应用
·Hibernate中Session的缓存及对象的状态
·Taglib的打包部署和使用方式详解
·Linux下安装整合Apache和Tomcat全过程
·WEB开发Struts:Session对象创建和控制
·JSP中include指令和include行为的区别
·JSP中调用SQL Server存储过程实例讲解
·在Weblogic上配置JMS服务的方法
·JSP获取客户端的浏览器和操作系统信息
·EJB中使用Hibernate的方法以及常见问题
·AJAX应用篇:必须用到和不必使用的地方
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Java入门:状态对象--数据库的替代者
·Java语言怎样调用外部应用程序
·Java语言深入--关于Java语言的内存泄漏
·JSP/Servlet/JSF:Servlet/JSP配置详解
·进阶-怎样使用AJAX进行WEB应用程序开发
·基础:J2ME程序开发之新手入门九大要点
·Java入门--Java语言接口与继承的本质
·JAVA进阶--如何提升JSP应用程序的效率
·对Java中四种XML解析技术之不完全测试
·编写高级 JScript应用代码
·JSP/Servlet/JSF--对标签库的深入研究
·Java入门--关于字符串分割的两种方法
  阅读排行
·使用AJAX技术实现网页无闪自动局部刷新
·快速教您Apache Tomcat SSL的配置
·Java语言深入--java调用C/C 的过程
·用JSP JavaScript打造二级级联下拉菜单
·JAVA进阶--线程运行栈信息的获取讲解
·使用WEBWORK实现文件上传方法实例详解
·J2SE综合--JAVA实现把汉字转化成拼音
·一个非常有趣的使用spring框架AOP例子
·关于java中相对路径,绝对路径问题总结
·高级:lucene全文检索应用示例及代码简
·详细讲解Struts构架中action的跳转大全
·在Weblogic上配置JMS服务的方法
·Hibernate配置文件中的映射元素详解
·对Java中四种XML解析技术之不完全测试
·数据库相关:小结Hibernate的查询方式
网摘收藏: