zoukankan      html  css  js  c++  java
  • 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

    破罐子互摔
  • 相关阅读:
    第二章:(2)Dubbo 常用配置之 启动时检查
    第二章:(1)Dubbo 配置
    2019版:第三章:(6)Redis 五大数据类型 之 ZSet
    2019版:第三章:(1)Redis 五大数据类型与 key
    2019版:第三章:(2)Redis 五大数据类型 之 String
    2019版:第四章:Redis 的配置文件
    2019版:第三章:(5)Redis 五大数据类型 之 Hash
    adm部署的k8s 修改端口范围(默认为3000032767)
    Android开发日记1
    Activity 利用Intent 转换到另一个Activity
  • 原文地址:https://www.cnblogs.com/zonglonglong/p/2661929.html
Copyright © 2011-2022 走看看