首页 | 互联网 | IT动态 | 网络设备 | 服务器 | IDC | 安全 | Cisco | Windows | Linux | Java | .Net | Oracle | CIW | 华为 | 专题
IT技术 | 网页设计 | 平面设计 | 电子书下载 | 教学视频 | 方案 | 数字网校 | 直播室 | 虚拟考场 | 面授培训 | 搜索 | 博客 | 沙龙 | 论坛
首页 | JAVA | C# | VB | VB.NET | C/C++ | delphi | 工程管理 | 其他语言 | 论坛
免费注册一站通帐号,参与直播、论坛、下载、博客、网摘、评论,展现我的风采!
您现在的位置: 中国IT实验室 >> 桌面开发 >> JAVA >> 文章正文
Java技巧:实例讲解Servlet的图象处理
来源:中国IT实验室收集整理  时间:2007-6-21

  我们在处理数据时,有时希望能用图象直观的表述,在这里有一个巧方法,能方便快捷的实现一些简单的图形(不能称之图象),比如条形图,我们不必去用 Java来生成并显示图象,(java生成图象很慢),我们可以这样来作,先用作图工具作一个很小的你需要的图片,再根据你所处理的数据量来实时的加长它,就可以得到所要表述的图例。比如我们在数据库中得到了一组数据,我们从中找出最大的那一个,按比列设定其标签的长度,其它的数据图形则可与它相比,得到的长度,这样,一个简简单单的条形图就出来。但有时一些简单的图形已经不能解决我们实际遇到的情况,比如曲线图就不能用这种方法,这时我们需要生成java图象,也许大家都用过Applet这样的程序吧,若访问量不大,而实时性又很特殊时(比如股票系统),必须这样用它。但事实上,我们Web程序大多有前后台之分,前台浏览,后台维护。这样我们可以在后台用Servlet实时动态定时地生成图象文件,而前台只是查看静态图片,这比你用applet来动态产生图象的速度快了不知多少倍,因为applet来动态产生图象,有两个地方很费时,一是数据库查询时间,二是applet本身生成图象就很慢。下面我以一个简单的例子来说明一下怎样生成并写入图象文件,本例注重的是怎样写入图象文件,相信写过applet的朋友会生成更加漂亮的图象。

Word-WRAP: break-word" bgColor=#f3f3f3>以下是引用片段:
package test;

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;

import java.awt.image.BufferedImage;

import com.sun.image.codec.jpeg.*;

import java.awt.image.*;

import java.awt.*;

public class Servlet2 extends HttpServlet {

public void init(ServletConfig config) throws ServletException {

super.init(config);

}

public void doGet(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException {

String sFileName = "e:/temp/name.jpg";

try{

FileOutputStream fos = new

FileOutputStream(sFileName);

BufferedImage myImage = new BufferedImage(225, 225,BufferedImage.TYPE_INT_RGB);

Graphics g = myImage.getGraphics();

g.setColor(Color.white);

g.fillRect(0,0,225,225);

g.setColor(Color.black);

g.drawString("Finance Balance Summary", 40, 15);

g.drawString("Primary", 90, 30);

g.setColor(Color.darkGray);

&g.fillRect(15,193,7,7);

g.setColor(Color.black);

g.drawString("% Operating", 25, 200);

g.setColor(Color.yellow);

g.fillRect(130,193,7,7);

g.setColor(Color.black);

g.drawString("% Term", 140, 200);

g.setColor(Color.lightGray);

g.fillRect(15,213,7,7);

g.setColor(Color.black);

g.drawString("% Mortgage", 25, 220);

g.setColor(Color.green);

g.fillRect(130,213,7,7);

g.setColor(Color.black);

g.drawString("% Lease", 140, 220);

JPEGImageEncoder jpg =

JPEGCodec.createJPEGEncoder(fos);

jpg.encode(myImage);

}catch (Exception e){

String exceptionThrown = e.toString();

String sourceOfException = " Method";

System.out.println("Origional Exception Thrown: " +

exceptionThrown + '\r' + '\n');

System.out.println("Origional SourceOfException: " +

sourceOfException + '\r' + '\n');

} // CatchStatementEnd

}

}

【责编:Youping】

中国IT教育热线咨询

相关文章
浅谈Java中利用JCOM实现仿Excel编程
基于Java的界面布局DSL的设计与实现
Java开发中的事件驱动模型实例详解
Java中消除实现继承和面向接口编程
编程软件系列之C++编程技巧
实现Java平台的三种方式
JAVA中对象创建和初始化过程
Java Web层的下一个王者是谁?
推荐文章
· 用C#创建COM对象
· IT管理十大失误及其对策
· VC中利用MFC设计绘图程序初步
· JAVA中对象创建和初始化过程
· C语言中的位域的使用
· 浅谈Java桌面应用程序开发
· C#的前途如何?
· 几种VC++数据库开发技术的相对比较
 精彩友情推荐
·锐捷交换机报价
·锐捷交换机
·锐捷网络网络交换机
·smc交换机
·smc交换机报价
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
最新更新 推荐文章
·Visual Basic 9.0隐式类型的局部…09-30
·JMX+J2SE5.0实现Web应用的安全管…09-30
·多线程、Socket技术及委托技术的…09-21
·Visual C#多线程参数传递浅析09-21
·浅谈Java中利用JCOM实现仿Excel编…09-21
·基于Java的界面布局DSL的设计与实…09-21
·Java开发中的事件驱动模型实例详…09-21
·并发工程原则应用到软件项目中09-06
·Delphi初学者应小心的六大陷阱09-06
·VC开发多语言界面支持的简单方法09-06
·用C#创建COM对象09-06
·用C#创建COM对象09-06
·IT管理十大失误及其对策08-30
·VC中利用MFC设计绘图程序初步08-23
·JAVA中对象创建和初始化过程08-23
·C语言中的位域的使用08-09
·浅谈Java桌面应用程序开发08-09
·C#的前途如何?08-02
·几种VC++数据库开发技术的相对比较07-12
·用Visual C#实现网络封包监视07-12
·VB.NET中的TextBox控件详解07-12
·VB.NET实现PC与掌上电脑PPC的双向通信07-05
  培训中心