服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

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";
  }
  }

扫描关注微信公众号