我们经常要在网页看到一些动态更新的图片,最常见的莫过于股票的K线图,本文试图通过一个简单的实例,向大家展示如何通过JSP 调用JavaBean在网页上动态生成柱状图。 背景:本人最近在为某统计局开发项目时,涉及到在网页上动态生成图片的问题,费了一天的时间,终于搞定,为帮助大家在以后遇到同样的问题时不走弯路,现将设计思想及源代码公布出来,与大家共勉。以下代码在Windows2000成功测试通过,Web应用服务器采用Allaire公司的Jrun3.0。
第一步:创建一个Java Bean用来生成jpg文件
源程序如下: //生成图片的 Java Bean //作者:崔冠宇 //日期:2001-08-24 import java.io.*; import java.util.*; import com.sun.image.codec.jpeg.*; import java.awt.image.*; import java.awt.*; public class ChartGraphics { BufferedImage image; public void createImage(String fileLocation) { try { FileOutputStream fos = new FileOutputStream(fileLocation); BufferedOutputStream bos = new BufferedOutputStream(fos); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos); encoder.encode(image); bos.close(); } catch(Exception e) { System.out.println(e); } }
public void graphicsGeneration(int h1,int h2,int h3,int h4,int h5) {
final int X=10; int imageWidth = 300;//图片的宽度 int imageHeight = 300;//图片的高度 int columnWidth=30;//柱的宽度 int columnHeight=200;//柱的最大高度
ChartGraphics chartGraphics = new ChartGraphics(); chartGraphics.image = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB); Graphics graphics = chartGraphics.image.getGraphics(); graphics.setColor(Color.white); graphics.fillRect(0,0,imageWidth,imageHeight); graphics.setColor(Color.red); graphics.drawRect(X+1*columnWidth, columnHeight-h1, columnWidth, h1); graphics.drawRect(X+2*columnWidth, columnHeight-h2, columnWidth, h2); graphics.drawRect(X+3*columnWidth, columnHeight-h3, columnWidth, h3); graphics.drawRect(X+4*columnWidth, columnHeight-h4, columnWidth, h4); graphics.drawRect(X+5*columnWidth, columnHeight-h5, columnWidth, h5); chartGraphics.createImage("D:\\temp\\chart.jpg"); } } | 解释:createImage(String fileLocation)方法用于创建JPG图片,参数fileLocation为文件路径 graphicsGeneration(int h1,int h2,int h3,int h4,int h5)方法用于绘出图片的内容,参数h1……h5为每一个长方形的高度 第二步:创建另一个Java Bean从文本文件中读取数据(每一个长方形的高度),在实际应用中数据存储在Oracle数据库中 源程序如下: //读取Text文件中数据的 Java Bean //作者:崔冠宇 //日期:2001-08-24 import java.io.*; public class GetData { int heightArray[] = new int[5]; public int[] getHightArray() { try { RandomAccessFile randomAccessFile = new RandomAccessFile ("d:\\temp\\ColumnHeightArray.txt","r"); for (int i=0;i<5;i++) { heightArray[i] = Integer.parseInt(randomAccessFile.readLine()); } } catch(Exception e) { System.out.println(e); } return heightArray; } } | 解释: getHightArray()用于从文本中读取数据,将文本中的String类型转换为int类型,并以数组类型返回。 第三步:创建JSP文件 源程序如下:
<%@ page import="ChartGraphics" %> <%@ page import="GetData" %> <jsp:useBean id="cg" class="ChartGraphics"/> <jsp:useBean id="gd" class="GetData"/> <%! int height[]=new int[5]; %> <% height=gd.getHightArray(); cg.graphicsGeneration(height[0],height[1],height[2],height[3],height[4]); %> <html> <body> <img src="d:\temp\chart.jpg"></img> </body> </html> | 解释:JSP首先调用Bean (GetData..class)读取文件中的数据,再调用Bean(ChartGraphics.class)生成图片,最后显示图片。 | |
相关推荐
--------------------------------------------------我们经常要在网页看到一些动态更新的图片,最常见的莫过于股票的K线图,本文试图通过一个简单的实例,向大家展示如何通过JSP 调用Java Bean在网页上动态生成柱状图....
案例8:JSP调用JavaBean在网页上动态生成柱状图 案例9:实现图片上传 案例10:JSP页面调用Applet实现人民币大小写转换 本章小结 第4章 Servlet高级编程设计与实现 案例1:Servlet中的多国语言显示 案例2:JSP调用...
jsp调用javabean的问题
;charset=GB2312"%> ...<jsp:useBean id="goodsbean" scope="application" class="sale.goodsbean" /> goodsbean.setProduct("clock"); goodsbean.setPrice(17); %> 使用方法1: 产品:()%> 税率:()%>
jsp+javabean 分页程序jsp+javabean 分页程序jsp+javabean 分页程序jsp+javabean 分页程序jsp+javabean 分页程序jsp+javabean 分页程序jsp+javabean 分页程序 简单实用供初学者参考
CNKI 数字图书馆 论文
Jsp中利用JavaBean技术实现分页功能 Jsp中利用JavaBean技术实现分页功能
用jsp+JavaBean做的登录、注册、修改、查询及删除系统。附有数据库文件。将数据库文件导入到MySQL中,在MyEclipse中可以直接运行。
jsp+javabean实现的分页web程序,另外附上我对这个程序做了个总结 和程序所需要用到的数据库,希望对大家有帮助。
JSP+javaBean+数据库 无限级动态树状菜单
Jsp+JavaBean教程讲述了jsp+javaBean的开发
Servlet+JSP+JavaBean(MVC)模式适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据。 Servlet+JSP、JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此...
JSP+JAVABEAN+SQLSERVER的图书馆管理系统 能够完成图书的借阅、归还、超期计算,借书卡管理等功能。
jsp+javabean的模式,有sql关系图,还有sql源码,仅供初学者参考下
基于JSP+JavaBean+Servlet开发的网上书店应用程序 使用MySQL数据库 实现基本的购物车、更改、删除订单内容;用户管理等内容
通过jsp+javabean实现猜数字游戏 ,里面有可以运行在MyEclipse10运行的源代码
本系统采用Servlet+Jsp+JavaBean+SQL2000 设计方式,其中Servlet担当主要逻辑控制,通过接受Jsp传来的用户请求,调用以及初始化JavaBean,在通过Jsp传到客户端,本系统中SqlBean担当主要的与数据库的连接与通信,...