当前位置: 移动技术网 > IT编程>开发语言>Jsp > 一个Jsp初学者的学习过程(六)

一个Jsp初学者的学习过程(六)

2019年04月19日  | 移动技术网IT编程  | 我要评论
 一个(sun企业级应用的首选)初学者的学习过程(六)theunforgiven第六章  画柱状统计图    在编码学习的过程中,
 一个(sun企业级应用的首选)初学者的学习过程(六)

theunforgiven


第六章  画柱状统计图

    在编码学习的过程中,我发现的问题越来越多了,有java方面的,sql方面的,html方面的,javascript方面的等等,对这些看似细小的问题的研究使我积累了实战的经验,起码不只是纸上谈兵了。
    这个时候我的领导让我做一个东西,实现局域网内部网上计算机故障报修。这其实就是一个留言板的功能,我正好之前做过练习,所以很轻松的就做好了。之后我想我也许应该做一个统计——统计一年内每个月完成的报修任务量,如果用表格显示的话太简单了,不如做一个动态生成的柱状图吧,我突然有了这个想法。
    马上开始动手,先是查资料,知道了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(sun企业级应用的首选)文件里,打开文件显示图片,一看这个图片的属性竟然就是这个.jsp(sun企业级应用的首选)文件的名。看了一阵子代码发现不是很理解,我开始看第三个例子。
    第三个例子符合我的思维:写一个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();
      }

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网