jsp实现图形验证码

2016-02-19 16:31 4 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐jsp实现图形验证码,赶紧看过来吧!

【 tulaoshi.com - Web开发 】

  调用方法    
    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(intCount1000)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;i4;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.tulaoshi.com/n/20160219/1612343.html

延伸阅读
代码如下: makeCertPic.java package pic; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.util.Random; import javax.imageio.ImageIO; /** * @autho...
标签: Web开发
image.jsp------------------------------生成随机验证码图片的Jsp页面 代码如下:  代码如下: %@ page contentType="image/jpeg" import="java.awt.*, java.awt.image.*,java.util.*,javax.imageio.*" % %! Color getRandColor(int fc,int bc) { Random random = new Random(); if(fc255) fc=255; if(bc255) bc=255; int r=fc+...
代码如下: package cn.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.http....
现在许多系统的注册、登录或者发布信息模块都添加的随机码功能,就是为了避免自动注册程序或者自动发布程序的使用。 验证码实际上就是随机选择一些字符以图片的形式展现在页面上,如果进行提交操作的同时需要将图片上的字符同时提交,如果提交的字符与服务器session保存的不同,则认为提交信息无效。为了避免自动程序分析解析图片,通常会在图片...
现在许多系统的注册、登录或者发布信息模块都添加的随机码功能,就是为了避免自动注册程序或者自动发布程序的使用。 验证码实际上就是随机选择一些字符以图片的形式展现在页面上,假如进行提交操作的同时需要将图片上的字符同时提交,假如提交的字符与服务器session保存的不同,则认为提交信息无效。为了避免自动程序分析解析图片,通...

经验教程

712

收藏

91
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部