JSP初级教程之跟我学JSP(六)_JSP教程
教程Tag:暂无Tag,欢迎添加,赚取U币!
推荐:JSP初级教程之跟我学JSP(五)第五章 jsp 分页功能的实现 经过上面的学习我渐渐熟悉了对 数据库 的操作,留言板的功能也不断的完善,随着留言的增加信息的目录越来越长了,现在需要实现一个分页功能了,我尝试自己解决这个问题。 1、我应该把它的关键部分封装成一个bean,使它尽可能的能
第六章 jsp实现画柱状统计图这一节的内容是用jsp生成一个统计——统计一年内每个月完成的报修任务量。
Java里和画图有关的是java.awt包,由于我构想的图只是由矩形组成,那么用到的方法也就这么几个:fillRect,drawRect,setColor,setFont,drawString。我很快发现一个问题:如何在页面显示这个图,这是个大问题,于是找例子。
在一个学过研究生Java课程的同事的帮助下知道可以这样:写一个类(Picture.class),这个类只负责画图,没有任何关于如何显示的语句,然后在一个页面文件(.htm文件就行)里<body>里写上这段代码:<applet code="Picture" height="400" width="400"></applet>,运行这个文件就可以了。但是这个方法有这两个弊端:1、它是直接从服务器端下载Picture.class,在客户端生成图片,所以客户端必须装有java环境,比如j2re等;2、现在大部分浏览器都或者迫于无奈或者被强行绑架(这里我严重鄙视一下3721和一个叫“天下搜索”的)安装了阻止小窗口、ActiveX控件的插件——就连XP的SP2也集成了这个功能——而这个功能同样对<applet>有效。
放弃第一种方法后我在网上找到了第二个例子,第二个例子让我很奇怪,代码直接写在一个.jsp文件里,打开文件显示图片,一看这个图片的属性竟然就是这个.jsp文件的名。看了一阵子代码发现不是很理解,我开始看第三个例子。
第三个例子符合我的思维:写一个bean(或者说是一个类),把一个代表路径的字符串和一些数据传给它,它根据数据画图但是不返回(从这一点来说它不能叫做bean),而是生成一个如.jpg文件并按照传进来的路径名进行保存。然后显页面通过<img src="……">显示图片。我通过这种方式实现了工作,下面是这个类的代码:
----------------------------------Picture.java------------------------------------
//该bean用于画柱状统计图
package ringz.javabeans;
import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
public class PictureBean
{
BufferedImage image;
private String fileLocation;
public void setFileLocation(String fileLocation)//fileLocation是图片的路径,如:“D:\\a\\b\\c.jpg”
{
this.fileLocation=fileLocation;
}
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)
{
e.printStackTrace();
}
}
public void outGraphic(String titles,String sstr,String str[],int datas[])
{
String Title=titles;
String SStr=sstr;
int imageWidth = 400;//图片的宽度 Line
int imageHeight;//不定长
int frameFirstWidth=imageWidth-10;
int frameFirstHeight=25;
int frameSecondWidth=imageWidth-10;
int frameSecondHeight;//不定长
int frameSpace=10;//两框间隔
int columnHeight=18;//柱的粗
int columnMaxWidth=frameSecondWidth-20;//柱的最大长度,也是代表数值最大的那个柱的长度
int sp=30;//柱的间隔
int num=datas.length;//数组的长度
int Datas[]=new int[num];//得到数组的数值
String name[]=new String[num];
for (int i=0;i<num;i++)
{
Datas[i]=datas[i];
name[i]=str[i];
}
//得此数组中的最大值
int max=Datas[0];
for (int j=0;j<num;j++)
{
if(Datas[j]>max)
max=Datas[j];
}
分享:JSP初级教程之跟我学JSP(四)第四章我的第一个 Javabean 程序 一、先看看如何取当前时间并显示的代码: ------------------------------------------------ % java.text.SimpleDateFormatformatter=newjava.text.SimpleDateFormat(yyyy-MM-ddHH:mm:ss); java.util.DatecurrentTime=ne
相关JSP教程:
- jsp response.sendRedirect不跳转的原因分析及解决
- JSP指令元素(page指令/include指令/taglib指令)复习整理
- JSP脚本元素和注释复习总结示例
- JSP FusionCharts Free显示图表 具体实现
- 网页模板:关于jsp页面使用jstl的异常分析
- JSP页面中文传递参数使用escape编码
- 基于jsp:included的使用与jsp:param乱码的解决方法
- Java Web项目中连接Access数据库的配置方法
- JDBC连接Access数据库的几种方式介绍
- 网站图片路径的问题:绝对路径/虚拟路径
- (jsp/html)网页上嵌入播放器(常用播放器代码整理)
- jsp下显示中文文件名及绝对路径下的图片解决方法
- 相关链接:
- 教程说明:
JSP教程-JSP初级教程之跟我学JSP(六)。