`
no_bao
  • 浏览: 317996 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

JSP图片验证码代码

    博客分类:
  • j2ee
阅读更多
产生验证码图片的文件-----image.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));
        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);
    }

    // 将认证码存入SESSION
    session.setAttribute("rand",sRand);


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

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


    %>

---------------使用验证码图片的文件---------a.jsp------------------------------------
    <%@ page contentType="text/html;charset=gb2312" %>


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>认证码输入页面</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
    <META HTTP-EQUIV="Expires" CONTENT="0">
    </head>
    <body>
    <form method=post action="check.jsp">
    <table>
    <tr>
    <td align=left>系统产生的认证码:</td>
    <td><img border=0 src="image.jsp"></td>
    </tr>
    <tr>
    <td align=left>输入上面的认证码:</td>
    <td><input type=text name=rand maxlength=4 value=""></td>
    </tr>
    <tr>
    <td colspan=2 align=center><input type=submit value="提交检测"></td>
    </tr>
    </form>
    </body>
    </html>

    -----------------验证的页面----------check.jsp

    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <html>
    <head>
    <title>认证码验证页面</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
    <META HTTP-EQUIV="Expires" CONTENT="0">
    </head>

    <body>
    <%
     String rand = (String)session.getAttribute("rand");
     String input = request.getParameter("rand");
    %>
    系统产生的认证码为: <%= rand %><br>
    您输入的认证码为: <%= input %><br>
    <br>
    <%
      if (rand.equals(input)) {
    %>
    <font color=green>输入相同,认证成功!</font>
    <%
      } else {
    %>
    <font color=red>输入不同,认证失败!</font>
    <%
      }
    %>
    </body>
    </html>
分享到:
评论

相关推荐

    JSP 生成随机验证码图片(经典老代码)

    JSP 生成随机验证码图片(经典老代码)

    利用jsp生成图片验证码

    在本主题“利用jsp生成图片验证码”中,我们将探讨如何在JavaServer Pages (JSP)上下文中创建一个简单的图片验证码,而无需使用Servlet。首先,我们要明白JSP是Java Web开发中的视图层技术,它允许我们在HTML页面中...

    jsp图片验证码源代码 自由模块

    【标题】"jsp图片验证码源代码 自由模块"涉及的知识点主要集中在Java服务器页面(JSP)技术、图片验证码的实现以及模块化的编程思想。验证码通常用于防止自动化程序(如机器人)对网站进行恶意操作,例如批量注册、...

    生成验证码图片的jsp代码

    在Web开发中,使用JSP(JavaServer Pages)来生成验证码图片是一种常见的方法。下面我们将详细讨论如何在JSP中实现验证码的生成。 首先,我们需要理解验证码的基本原理。验证码通常包含一串随机的字母和数字,有时...

    5种JSP验证码的源代码.rar

    1. 图片验证码: 这是最常见的验证码类型,通过生成随机字符串并将其绘制到图片上,再将图片发送给客户端。JSP可以通过Java的Graphics2D类来绘制文字和背景噪声,增加破解难度。同时,服务器会保存这个字符串,以便...

    jsp实现注册页面验证码验证代码

    Description: 该文章讲述了如何使用 JSP 实现注册页面验证码验证代码,代码使用请有基础 JSP 基础,知道将代码添加到哪里,文章中已做详细阐述。 Tag: JSP、验证码、代码、表单验证 Knowledge Points: 1. JSP ...

    一个jsp 数字验证码的代码

    在IT行业中,数字验证码是一种广泛应用于网站安全验证的技术,它主要用于...以上就是关于“一个jsp数字验证码的代码”的主要知识点。理解并掌握这些内容,开发者就能创建自己的JSP数字验证码系统,提升网站的安全性。

    JSP页面验证码生成图片

    ### JSP页面验证码生成图片详解 #### 一、概述 在网站登录或注册过程中,为了防止恶意登录或机器人操作,通常会使用验证码机制。本文档详细介绍了一种利用JSP技术生成验证码图片的方法。该方法通过Java后端动态...

    生成验证码 jsp 图片验证码

    总的来说,生成JSP图片验证码涉及了Java图像处理、随机数生成、Session管理等多个知识点。通过合理的实现,可以有效地防止自动化攻击,保护网站的安全。在实践中,我们需要不断优化验证码的设计,以平衡用户体验和...

    JSP图形验证码项目

    在JSP的后台处理代码中,我们会比较用户输入的验证码与之前保存在会话中的验证码是否一致,如果一致则验证通过,否则提示错误。 5. **安全措施**:为了增加安全性,每次登录失败或刷新页面时,应重新生成新的验证码...

    jsp验证码——数字

    为了避免浏览器缓存造成的验证码重复问题,使用了以下代码来禁用页面缓存: - `response.setHeader("Pragma", "No-cache");` - `response.setHeader("Cache-Control", "no-cache");` - `response.setDateHeader(...

    jsp中实现验证码的代码和示例

    这段代码首先生成了一个4位随机数字的验证码,然后创建了一个图片并绘制了验证码以及干扰线,最后将验证码保存到session,并将生成的图像以JPEG格式输出到浏览器。 `Random.txt`可能是一个简单的文本文件,用于记录...

    jsp图形验证码源码

    - 一个JSP文件(例如:`captcha.jsp`),负责生成和输出验证码图片流。 - 可能有一个辅助的Java类(如`CaptchaGenerator.java`),包含了生成随机字符串和绘制图像的逻辑。 - 配合使用的session管理,用于存储和比较...

    验证码jsp源代码

    总结,这个"验证码jsp源代码"实例展示了如何利用JSP和Servlet创建一个简单的验证码登录系统,涵盖了服务器端动态页面生成、会话管理、表单提交验证等多个核心知识点。通过深入理解这些概念,开发者可以构建更复杂、...

    jsp登录验证码的源代码

    ### JSP登录验证码的源代码解析 #### 一、引言 在Web应用程序的安全性设计中,验证码(CAPTCHA)是一种常见的技术手段,用于区分用户是人类还是自动化软件。本篇文章将详细介绍一个基于JSP实现的登录验证码源代码,...

    Jsp常用功能——图片验证码

    本文将深入解析JSP中实现图片验证码的主要技术和步骤。 首先,我们需要理解如何生成一张图片。在Java中,我们可以利用`java.awt`包下的类来实现这一目标。`HelloImage.java`示例代码展示了生成图片的基本流程: 1....

    JSP编程验证码登陆系统

    3. **图片验证码的显示** 生成的验证码图片需要显示在登录页面上,这可以通过在JSP页面中嵌入一个HTML `&lt;img&gt;`标签,并设置其`src`属性为一个Servlet的URL,该Servlet负责生成并返回验证码图片。 4. **用户输入...

    JSP代码实现验证码功能

    ### JSP代码实现验证码功能详解 #### 一、概述 本文档详细介绍了如何使用Java Server Pages (JSP)技术来实现一个简单的验证码功能。验证码在Web应用中是一种常见的安全措施,用于防止自动化软件进行恶意操作,如...

Global site tag (gtag.js) - Google Analytics