用Servlet生成动态图片,java程序生成动态图片的例子

打开eclipse(最好是装了myeclipse的),新建webproject,新建类这里是JPEGServlet,继承(extends)HttpServlet[继承所有方法打

上钩,在新建类的最下方有个Tchecked控件,这样很多代码就自动产生了],这些我就不多讲了,不好意思班门弄大斧,如果你是初学,那我

就不好意思的讲讲清楚,大家互相学习,说不定就这一小源码,大家慢慢发展变化就变成大大东东了!这也是我发这篇文章的原因,毕竟我也

是个初学者......好了,好像是卖关子的拉!
1.   详细源码如下:

package servlet;  //包名

import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import java.io.IOException;

import javax.servlet.*;
import javax.servlet.http.*;

public class JPEGServlet extends HttpServlet {

 private static final long serialVersionUID = 1L;

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

  response.setContentType("image/jpeg");
  ServletOutputStream out = response.getOutputStream();
  BufferedImage image = new BufferedImage(750, 30, BufferedImage.TYPE_INT_RGB);
  int per = 0;
  try
  {
   per = Integer.parseInt((String)request.getParameter("size"));//接收参数,表示进度
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
  
  Graphics graphics = image.getGraphics();
  graphics.setColor(Color.green);
  graphics.fillRect(0, 0, 750, 30);
  graphics.setColor(Color.yellow);
  graphics.fillRect(0, 0, 750 * per / 100, 30);
  JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
  encoder.encode(image);
  out.close();
 }

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

  doGet(request, response);
 }

}

 2. web.xml配置如下


   jpegServlet               /*servlet名称*/
   servlet.JPEGServlet     /*servlet类所在位置
                                                            包名.类名
                                                           */



   jpegServlet              /*servlet映射设置 
                                                                                     servlet名称
                                                                                 */
   /picture                  /*访问路径*/


 3. 访问
   http://localhost:8088/工程名称/picture?size=33
   这样去访问得到个显示进度的图形
   大多数油箱的存储容量和网盘空间显示的进度就可以这样用size参数访问来设置了,也就是把这个servlet内陷入源码
   如:


   //这里value值当然就可以是个变量了

 4. 加深
   ①使它动态的进度条,速度实实在在的在变动,我想稍微在jsp里写个程序就不难了吧,如果你不太明白就跟我联系罗(QQ:150343747)
   ②利用这种方式来实现“动态验证码”
   这两点,由于时间和空间问题我就先不熬述了,但是值得大家一起来讨论和研究!

5. 思考
    ①不知道大家有没有发现,http://localhost:8088/工程名称/picture?size=33这样去访问servlet用查看源文件是看不到的,然后另为

为,发现它是图片格式,确实也是图片格式,代码response.setContentType("image/jpeg")已经告诉我们了,那么是不是就可以
      
来访问了呢???
    ②不知道大家有没有注意,一般一个网站上很多相同样式或背景按钮只是字不同,比如“确定”“取消”,“放送”等等,难道每改变一

个词就要用图片编辑器重新编辑一下吗?难道就不能用servlet来设计自己样式的按钮,只要把参数“显示在按钮上的字”赋给servlet就行了

吗?想想这样的思路正确吗?
     好了,今天就讲这么多,时间不早了,咱来日方长!

 

黑色头发  http://heisetoufa.iteye.com

你可能感兴趣的:(java,Servlet,Java,JSP,Myeclipse,Eclipse)