首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 笔记本电脑 | 北大青鸟 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> J2EE >> Servlet/Jsp >> 正文

servlet中实时地创建图象


  在Java创建图象或进行图象处理,有几个包和类是需要用到的。详细请参阅Purple Servlet References。
  
  当您的servlet有图象文件时您有两个选择。
  
  把文件写入磁盘并提供连接。注意写在您的web服务器目录树下(不是在服务器磁盘的任何地方都行。)你可以
  用Java 2 JPEGCodec类,或Acme Labs' GIFEncoder类将Java Graphics 转换成图象文件或二进制流.
  值得一提的是在一些servlet引擎设置中,servlet的目录不能通过web server进入,只能通过servlet引擎,也就是
  说您不能通过http:// URL登录,您可以向您的servlet输出的HTML传送IMG标签,或传送HTTP重新定位来让浏览器直接下载图象。
  (CookieDetector (http://www.purpletech.com/code/CookieDetector.html) has an example, with
  source code, of sending a redirect.)
  (CookieDetector (http://www.purpletech.com/code/CookieDetector.html) 有一个例子,有传送
  重新定位源代码。
  图象可以被保存在浏览器的cache中,当再次请求时不必重新运行servlet,因此减轻了服务器的负担。
  ).
  
  图象不能从磁盘中删除,因此您必须写一段程序来定期清理图象目录,或进入目录
  后用手工删除。(或买一张大点的硬盘)
  
  2.直接从servlet输出图象。通过给image/gif (for GIFs)或 image/jpeg
  (for JPEGs)设置Content-type头来实现它。然后打开HttpResponse 
  output流作为原始流而不是打印流,用write()方法直接传送字节。
  
  以下是一个用servlet实时创建图像的例子程序
  
  import javax.servlet.*;
  import javax.servlet.http.*;
  import java.io.*;
  import java.util.*;
  import com.sun.image.codec.jpeg.*;
  import java.awt.image.*;
  import java.awt.*;
  public class JPEGServlet extends HttpServlet {
  //Process the HTTP Get request
  public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
  response.setContentType("image/jpeg");
  ServletOutputStream out = response.getOutputStream();
  BufferedImage image = new BufferedImage(100,100, BufferedImage.TYPE_INT_RGB);
  Graphics g = image.getGraphics();
  g.setColor(Color.green);
  g.fillRect(0, 0, 100, 100);
  g.setColor(Color.red);
  g.drawOval(0, 0, 100,100);
  JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(out);
  encoder.encode(image);
  out.close();
  }
  //Process the HTTP Post request
  public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
  doGet(request,response);
  }
  //Get Servlet information
  public String getServletInfo() {
  return "JPEGServlet Information";
  }
  }
  
【责编:admin】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·Oracle外键及外键约束修改行为
 ·开源软件测试工具学习专题
 ·JSP Web开发 入门基础到高手进阶教程
 ·JavaFX—是Java桌面的新希望么?
 ·安全至上 .NET开发安全策略
 ·测试用例设计之道-测试用例学习专题
 ·面向Java开发人员的Scala指南
 ·Java设计模式之实例详解
 ·Oracle数据库11g 面向DBA和开发人员的重要新特性
 ·桌面应用软件编程 J2SE技术详解
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航