Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 665|回复: 0

JSP常用数字验证码

[复制链接]

该用户从未签到

发表于 2011-10-13 11:31:29 | 显示全部楼层 |阅读模式
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!

    Color getRandColor(int cc,int bb)

    {

        Random random = new Random();

        if(fc>255) cc=255;

        if(bc>255) bb=255;

        int r=cc+random.nextInt(bb-cc);

        int g=cc+random.nextInt(bb-cc);

        int b=cc+random.nextInt(bb-cc);

        returnnew Color(r,g,b);

    } //获取随机颜色


%>

<%

    response.setHeader(&quotragma","No-cache");

    response.setHeader("Cache-Control","no-cache");

    response.setDateHeader("Expires", 0);



    int width=80; //定义验证码图片的长度

    int height=30; //定义验证码图片的宽度

    BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);



    Graphics g = image.getGraphics();



    Random random = new Random();



    g.setColor(getRandColor(200,250));

    g.fillRect(0, 0, width, height);



    g.setFont(new Font("Times New Roman",Font.PLAIN,18));


    //定义字体形式


    g.setColor(getRandColor(160,200));

    for (int i=0;i<155;i++)

    {

       int i_x = random.nextInt(width);

       int i_y = random.nextInt(height);

       int i_xl = random.nextInt(12);

       int i_yl = random.nextInt(12);

       g.drawLine(i_x,i_y,i_x+i_xl,i_y+i_yl);

    }


    //用线条画背景


    String s_Rand="";

    for (int i=0;i<4;i++)

    {

       String rand=String.valueOf(random.nextInt(10));

       s_Rand+=rand;

      

       g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));

       g.drawString(rand,13*i+6,16);

    }


    //产生4位随机码


    session.setAttribute("rand",s_Rand);


    //将验证码存入Session中


    g.dispose();

   

    ImageIO.write(image, "JPEG", response.getOutputStream());


    //输出验证图片
   

    out.clear();

    out = pageContext.pushBody();

   

%>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-23 17:33 , Processed in 0.368566 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表