`

验证码例子

    博客分类:
  • java
阅读更多

1.准备一个servelt类,里面是生成图片的代码



package com.rhcy.servlet;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class GetRandomCode extends HttpServlet {

    /**
     * Constructor of the object.
     */
    public GetRandomCode() {
        super();
    }

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }


    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        System.out.println("success");
        //HttpSession session = request.getSession();
        int width = 60;
        int height = 20;
        BufferedImage image = new BufferedImage(width, height, 1);
        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", 0, 24));
        Color randomColor = getRandColor(160, 200);
        g.setColor(randomColor);
        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);
        }
        String rand = "";
        String sRand = "";
        for (int i = 0; i < 4; i++) {
            switch (random.nextInt(2)) {
            case 0: {
                rand = String.valueOf(random.nextInt(10));
                sRand = sRand + rand;
                break;
            }
            case 1: {
                rand = String.valueOf((char) (97 +random.nextInt(26)));
                sRand = sRand + rand;
                break;
            }
            default:break;
            }
            g.setColor(new Color(20 + random.nextInt(110), 20 + random .nextInt(110), 20 +random.nextInt(110)));
            g.drawString(rand, 13 * i +random.nextInt(8), 15 + random .nextInt(5));

   
        }
   
        System.out.println("验证数字"+sRand);
        request.setAttribute("session_seccodeverify", sRand);
        g.dispose();
        ImageIO.write(image, "PNG", response.getOutputStream());
    }

    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);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }

    public void init() throws ServletException {
        // Put your code here
    }

}


2.  配置文件web。xml里配置servlet配置



  <servlet>
    <servlet-name>GetRandomCode</servlet-name>
    <servlet-class>com.rhcy.servlet.GetRandomCode</servlet-class>
  </servlet>


  <servlet-mapping>
    <servlet-name>GetRandomCode</servlet-name>
    <url-pattern>/GetRandomCode</url-pattern>
  </servlet-mapping>


3.  页面代码如下


        <script type="text/javascript">
   
   
    function loadimage(){
   
            var radom = Math.random()
            document.getElementById("randImage").src = "GetRandomCode?"+radom;
       
       }
       function sub(){
               return;
       }

</script>


</tr>
                    <tr width="80" align="center">
                    <td>
                        验证码:
                    </td>
                    <td width="150">
                        <input name="yanzhengimg" type="text" id="yanzhengimg" size="20" />
                       
                    </td>
                    <td><img alt="如果看不清楚,请点击图片重新刷新!" name="randImage" id="randImage" src="GetRandomCode" width="51" height="25" border="1" onClick="loadimage()" style="cursor:hand"></td>
                </tr>


分享到:
评论

相关推荐

    网站验证码例子程序,可以直接使用

    这里提到的"验证码例子程序"很可能是一个基于图像的验证码系统,由Java编写。 Java是一种广泛使用的面向对象的编程语言,具有跨平台的特性,非常适合开发Web应用程序。在Java中实现验证码,我们可以使用如下的技术...

    验证码生成与验证例子,验证码例子

    验证码生成与验证例子,验证码例子,验证码

    jsp 最简单获取动态 验证码 例子

    在这个“jsp 最简单获取动态验证码例子”中,我们将探讨如何在JSP中生成并显示一个简单的动态验证码。 验证码的主要目的是防止自动机器人或恶意脚本进行非法操作,例如防止垃圾邮件、注册虚假账号等。动态验证码则...

    ASP.NET/C#开发的验证码例子程序

    在这个“ASP.NET/C#开发的验证码例子程序”中,我们将深入探讨验证码的实现、其功能以及如何使用C#编程语言来创建它。 验证码(CAPTCHA)全称为“Completely Automated Public Turing test to tell Computers and ...

    易语言生成字母和数字的验证码例子源码

    在这个"易语言生成字母和数字的验证码例子源码"中,我们可以深入学习如何在易语言环境下创建一个生成随机验证码的功能。 验证码通常用于网络安全,防止自动化程序(如机器人)进行恶意操作,如注册、登录等。其核心...

    上传下载密码加密验证码例子tools

    总的来说,"上传下载密码加密验证码例子tools"这个压缩包是学习和实践文件安全传输的一个实用资源,可以帮助开发者理解并实施基本的数据保护措施。通过研究和应用其中的代码,我们可以提高应用程序的安全性,确保...

    简单的用JSP产生的验证码例子

    在这个“简单的用JSP产生的验证码例子”中,我们将探讨如何使用JavaServer Pages(JSP)来创建一个基本的图像验证码。 首先,JSP是Java的一种视图技术,它允许开发人员在HTML或XML文档中嵌入Java代码,从而动态生成...

    bcb 发邮件和一个破解数字位置固定的验证码 例子

    标题中的“bcb 发邮件和一个破解数字位置固定的验证码 例子”主要涵盖了两个主题:使用Borland C++ Builder(简称bcb)进行电子邮件发送以及破解固定数字位置的验证码。让我们逐一深入探讨这两个知识点。 首先,...

    验证码例子.zip

    本JavaWeb工程提供了一个验证码的例子,帮助开发者理解并实现验证码的功能。 首先,验证码的主要功能是验证用户是否为真实的人。在网页应用中,通常会显示一个随机生成的图像,其中包含数字或字母的组合,用户需要...

    验证码 验证码例子 jcaptcha jcaptcha例子

    验证码(CAPTCHA)是一种用于验证用户是否为人类的在线安全技术。它通常通过显示一个扭曲的文本图像,要求用户输入看到的字符来实现这一目的。验证码的主要目的是防止自动化程序(如机器人或爬虫)进行恶意操作,如...

    e语言-易语言生成字母和数字的验证码例子

    易语言生成字母和数字的验证码例子源码

    验证码例子-从简单到复杂 可用于图像文字识别 Python验证码识别 MATLAB验证码识别均可用.xlsx

    验证码例子-从简单到复杂 可用于图像文字识别 Python验证码识别 MATLAB验证码识别均可用.xlsx

    jcaptcha的验证码例子

    在IT领域,`jCaptcha`(Just Another CAPTCHA)是一个非常流行的Java实现的验证码库,它提供了高度可定制的图像和音频验证码生成器。本文将详细介绍`jCaptcha`在基于`Acegi`安全框架的应用中的使用,以及如何设置一...

    java验证码例子

    java验证码例子

    java彩色验证码例子

    Java生成彩色验证码是一种常见的安全措施,用于防止自动化脚本或恶意机器人进行非法操作,例如注册、登录等。在Web开发中,JSP(JavaServer Pages)可以用来创建动态的网页内容,包括验证码图像。以下是对标题和描述...

    asp.net(c#)web语音验证码例子源码下载

    在这个例子中,开发者可能创建了一个ASP.NET Web Form页面,该页面包含了语音验证码的生成和验证逻辑。 3. **C#编程语言**:作为.NET Framework的主要开发语言,C#用于编写后台逻辑,处理用户的请求,生成验证码,...

    页面验证码例子

    本篇文章将围绕"页面验证码例子"这一主题,深入探讨验证码的原理、类型以及实现方法。 验证码的原理主要基于人类与计算机识别能力的差异。它通常会显示一段随机生成的文字或图像,要求用户输入看到的内容。由于...

    asp.net(c#)web语音验证码例子

    在ASP.NET(C#)开发中,Web语音验证码是一种提高网站安全性的重要工具,它通过生成音频验证码,帮助用户在无法查看图形验证码或者有视觉障碍的情况下验证身份。本示例将深入探讨如何实现这样的功能。 首先,我们需要...

Global site tag (gtag.js) - Google Analytics