jsp图形验证码

<img   src="http://...../getImg">     
    
  原理,在servlet中随机生成一个4位数字1000-9999     
  然后把这数字写入session     
  输出一个图片,上面写有这四个数字     
  在服务器端根据用户输入的数字和     
  session中的值比较。     
    
    
  package   com.schoolwx.util;     
  import   java.io.*;     
  import   java.util.*;     
  import   com.sun.image.codec.jpeg.*;     
  import   javax.servlet.*;     
  import   javax.servlet.http.*;     
  import   java.awt.*;     
  import   java.awt.image.*;     
    
    
  /**     
  *   Title:   getImg.java     
  *   Description:   这个class主要实现随机生成一个4位数的验证码,并写入session,    
  *   Copyright:   Copyright   (c)   2003     
  *   Company:   蓝星软件     
  *   @author   falcon     
  *   @version   1.1     
  */     
    
    
  public   class   getImg   extends   HttpServlet   {     
    
  PRivate   Font   mFont=new   Font("宋体",   Font.PLAIN,12);//设置字体     
  //处理post     
  public   void   doPost(HttpServletRequest   request,HttpServletResponse   response)     
  throws   ServletException,IOException   {     
    
  doGet(request,response);     
  }     
  public   void   doGet(HttpServletRequest   request,HttpServletResponse   response)     
  throws   ServletException,IOException   {     
  //取得一个1000-9999的随机数     
  String   s="";     
    
  int   intCount=0;     
    
  intCount=(new   Random()).nextInt(9999);//     
    
  if(intCount<1000)intCount+=1000;     
    
  s=intCount+"";     
    
    
  //对session付值。     
    
  HttpSession   session=request.getSession   (true);     
    
  session.setAttribute("getImg",s);     
    
  response.setContentType("image/gif");     
    
  ServletOutputStream   out=response.getOutputStream();     
    
  BufferedImage   image=new   BufferedImage(35,14,BufferedImage.TYPE_INT_RGB);     
    
  Graphics   gra=image.getGraphics();     
  //设置背景色     
  gra.setColor(Color.yellow);     
    
  gra.fillRect(1,1,33,12);     
  //设置字体色     
  gra.setColor(Color.black);     
    
  gra.setFont(mFont);     
  //输出数字     
  char   c;     
    
  for(int   i=0;i<4;i++)   {     
    
  c=s.charAt(i);     
    
  gra.drawString(c+"",i*7+4,11);   //7为宽度,11为上下高度位置     
    
  }     
    
  JPEGImageEncoder   encoder=JPEGCodec.createJPEGEncoder(out);     
    
  encoder.encode(image);     
    
  out.close();     
    
  }     
    
  }     
http://blog.csdn.net/lixiaolong_blog/archive/2007/01/25/1493417.aspx

破罐子互摔
原文地址:https://www.cnblogs.com/zonglonglong/p/2661929.html