`
javaxhw
  • 浏览: 36308 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个简单、方便的JSP验证码实例

    博客分类:
  • web
阅读更多
直接引入下面的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(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
%>
<%
    //设置页面不缓存
    response.setHeader("Pragma","No-cache");
    response.setHeader("Cache-Control","no-cache");
    response.setDateHeader("Expires", 0);

    // 在内存中创建图象
    int width=60, height=20;
    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(new Color());
    //g.drawRect(0,0,width-1,height-1);


    // 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
    g.setColor(getRandColor(160,200));
    for (int i=0;i<155;i++) {
  int x = random.nextInt(width);
  int y = random.nextInt(height);
  int xl = random.nextInt(12);
  int yl = random.nextInt(12);
  g.drawLine(x,y,x+xl,y+yl);
    }

    // 取随机产生的认证码(4位数字)
    String sRand="";
    for (int i=0;i<4;i++) {
        String rand=String.valueOf(random.nextInt(10));
        System.out.println("rand="+rand);
        sRand+=rand;
        // 将认证码显示到图象中
        g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
        g.drawString(rand,13*i+6,16);
    }
    System.out.println("sRand="+sRand);
    // 将认证码存入SESSION
    session.setAttribute("KAPTCHA_SESSION_KEY",sRand);

    // 图象生效
    g.dispose();

    // 输出图象到页面
    ImageIO.write(image, "JPEG", response.getOutputStream());

out.clear();
out = pageContext.pushBody();
%>
分享到:
评论

相关推荐

    JSP中添加验证码简单实例

    这是一个简单的JSP中添加验证码实例,初学者可以看看。

    jsp用户登录验证码实例

    可以实现简单的用户登录验证码实例 ! Color getRandColor(int fc,int bc){//给定范围获得随机颜色 Random random = new Random(); if(fc&gt;255) fc=255; if(bc&gt;255) bc=255; int r=fc+random.nextInt(bc-fc); ...

    jsp图片验证码实例

    简单介绍了图片验证码的的制作实例,适合初学者学习使用!

    简单的网页验证码实例

    protected void Page_Load(object sender, EventArgs e) { VryImgGen gen = new VryImgGen(); string verifyCode = gen.CreateVerifyCode(5, 1); Session["VerifyCode"] = verifyCode.ToUpper();...

    jsp页面验证码(完整实例MyEclipse)

    MyEclipse实现页面验证码,是最简单的入门级页面验证码

    JSP页面实现验证码功能

    使用一个简单JSP页面即可实现验证码功能的实例页面 简单实用

    JSP验证码简单生成方法

    本文实例讲述了JSP验证码简单生成方法。分享给大家供大家参考。具体如下: &lt;&#37;@ page contentType=image/jpeg import=java.awt.*,java.awt.image.*,java.util.*,javax.imageio.* %&gt; &lt;&#37;! Color ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    18.2 一个简单的标签文件 551 18.3 标签文件的隐含对象 554 18.4 标签文件的指令 555 18.4.1 tag指令 555 18.4.2 attribute指令 556 18.4.3 variable指令 557 18.5 标签文件实例讲解 558 18.5.1 实例一:...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    18.2 一个简单的标签文件 551 18.3 标签文件的隐含对象 554 18.4 标签文件的指令 555 18.4.1 tag指令 555 18.4.2 attribute指令 556 18.4.3 variable指令 557 18.5 标签文件实例讲解 558 18.5.1 实例一:...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    18.2 一个简单的标签文件 551 18.3 标签文件的隐含对象 554 18.4 标签文件的指令 555 18.4.1 tag指令 555 18.4.2 attribute指令 556 18.4.3 variable指令 557 18.5 标签文件实例讲解 558 18.5.1 实例一:...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    18.2 一个简单的标签文件 551 18.3 标签文件的隐含对象 554 18.4 标签文件的指令 555 18.4.1 tag指令 555 18.4.2 attribute指令 556 18.4.3 variable指令 557 18.5 标签文件实例讲解 558 18.5.1 实例一:...

    Java基于MVC模式的一个简单购物车实例源码+使用说明.zip

    Java基于MVC模式的一个简单购物车实例源码+使用说明.zip 该项目是个人毕设项目,答辩评审分达到95分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工...

    JAVA 范例大全 光盘 资源

    实例3 在Eclipse中创建第一个Java程序 4 常见问题 javac不是内部或者外部命令 6 常见问题 找不到类文件 6 常见问题 语法错误 7 第2章 Java基础语法 9 实例4 变量和常量 9 实例5 基本数据类型转换 10 实例6 ...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java范例开发大全

    实例255 一个关于泛型的简单例子 511 实例256 带两个类型参数的泛型 513 实例257 有界类型程序示例 514 实例258 通配符使用示例 515 实例259 泛型方法使用示例 516 实例260 泛型接口示例 518 实例261 泛型实现坐标...

    《Java-Web应用开发基础》教学课件08课程设计实例.pptx

    2.Servlet设计 设计4个Servlet:一个用于生成登录验证码,另一个用于校验用户名,还有一个用于校验验证码,最后一个用于登录验证。 《Java-Web应用开发基础》教学课件08课程设计实例全文共73页,当前为第9页。 8.3...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JavaScript网页特效范例宝典源码

    实例075 只有一个复选框时控制复选框的全选或反选 119 2.5 密码域 120 实例076 让您的密码域更安全 120 实例077 不提交表单自动检测密码域是否相同 121 2.6 表单应用 122 实例078 通过JavaScript控制表单的提交与...

Global site tag (gtag.js) - Google Analytics