`
junli0411
  • 浏览: 141008 次
  • 来自: ...
社区版块
存档分类
最新评论

jsp验证码(数字+字母)

阅读更多
1.建立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);
    }%>
<%
    //out.clear();//这句针对resin服务器,如果是tomacat可以不要这句 
    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(getRandColor(160, 200));
    for (int i = 0; i < 155; i++) {
        int x = random.nextInt(width);
        int y = random.nextInt(height);
        int xl = random.nextInt(10);
        int yl = random.nextInt(10);
        g.drawLine(x, y, x + xl, y + yl);
    }

    char c[] = new char[62];

    for (int i = 97, j = 0; i < 123; i++, j++) {
        c[j] = (char) i;
    }
    for (int o = 65, p = 26; o < 91; o++, p++) {
        c[p] = (char) o;
    }
    for (int m = 48, n = 52; m < 58; m++, n++) {
        c[n] = (char) m;
    }
    String sRand = "";
    for (int i = 0; i < 4; i++) {
        int x = random.nextInt(62);
        String rand = String.valueOf(c[x]);
        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);
    System.out.println(sRand);
    g.dispose();
    ImageIO.setUseCache(true);
    ImageIO.write(image, "JPEG", response.getOutputStream());
%>

2.建立验证页面validate.jsp,如下
<%@ page language="java" contentType="text/html; charset=GB2312"
    pageEncoding="GB2312"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>验证</title>
</head>
<body>
<%!String rand = null;

    String input = null;%>
<%
    rand = (String) session.getAttribute("rand");
    input = request.getParameter("yanzhengma");
%>
验证码为:
<%=rand%>
您的输入为:
<%=input%>
<%
if (rand.equals(input)) {
%>
<font color=green>输入相同,认证成功!</font>
<%
} else {
%>
<font color=red>输入不同,认证失败!</font>
<%
}
%>
</body>
</html>
 

3.建立登录页面login.jsp 如下
<%@   page language="java" import="java.sql.*" errorPage=""%>
<%
request.setCharacterEncoding("GB2312");
%>
<%@page pageEncoding="GB2312"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用户登录</title>
<script language="javascript"> 
      function   loadimage(){ 
          document.getElementById("randImage").src  =  "image.jsp?"+Math.random(); 
      } 
      </script>
</head>

<body>

<table width="256" border="0" cellpadding="0" cellspacing="0">
    <!--DWLayoutTable-->
    <form action="validate.jsp" method="post" name="loginForm">
    <tr>
        <td width="118" height="22" valign="middle" align="center"><input
            type="text" name="yanzhengma" size="15"></td>
        <td width="138" valign="middle" align="center"><img alt="code..."
            name="randImage" id="randImage" src="image.jsp" width="60"
            height="20" border="1" align="absmiddle"></td>
    </tr>
    <tr>
        <td height="36" colspan="2" align="center" valign="middle"><a
            href="javascript:loadimage();"><font class=pt95>看不清点我</font></a></td>
    </tr>
    <tr>
        <td height="36" colspan="2" align="center" valign="middle"><input
            type="submit" name="login" value="提交"></td>
    </tr>
    </form>
</table>
</body>
</html>


分享到:
评论

相关推荐

    JSP数字+字母验证码

    下面将详细介绍JSP验证码的实现原理、步骤以及相关的知识点。 **验证码的基本原理** 验证码的核心是生成一串随机字符串,然后将其展示给用户,用户输入看到的字符串,服务器端验证输入是否正确。验证码设计的目标...

    jsp数字+字母验证码

    本文将深入探讨如何在JSP中生成一种混合数字和字母的彩色验证码。 首先,验证码的核心在于生成随机字符串。在Java中,我们可以使用`java.util.Random`类生成随机数,结合`Character`类来获取随机的字母和数字。通常...

    jsp动态验证码 字母+数字彩色的

    ### JSP 动态验证码实现方法:字母与数字彩色组合 #### 一、背景介绍 在Web应用中,验证码作为一种防止恶意操作的有效手段被广泛采用。对于基于Java Server Pages(JSP)的应用程序来说,实现一个自定义的验证码...

    JSP验证码_字母+数字

    再页面上生成四个符号的验证码,点击刷新更换!!!!

    JSP 验证码 字母 数字

    ### JSP验证码生成 #### 1. 基本概念 验证码是一种防止自动化软件攻击的安全机制,常用于用户登录、表单提交等场景。JSP(Java Server Pages)是一种基于Java的技术,用于创建动态网页。在JSP中生成验证码通常涉及...

    jsp的数字和字母验证码

    创建JSP验证码的过程大致分为以下几个步骤: 1. **生成随机字符串**:使用Java的`Random`类和`StringBuilder`类,我们可以生成一个包含数字和字母的随机字符串。可以设定字符串长度,比如6位,同时确保字母不区分大...

    三种验证码代码示例(数字,数字字母混合,汉字)

    本示例包括三种类型的验证码:纯数字、数字字母混合以及汉字验证码,这些都是为了提高用户验证的安全性和有效性。 首先,`Default.aspx`可能是首页,它可能包含一个链接或按钮,引导用户进入不同的验证码验证页面。...

    jsp验证码(数字、数字字母)登陆校验

    本篇将详细介绍如何在JSP(JavaServer Pages)中实现数字和数字字母混合的验证码生成及校验。 首先,验证码的生成通常分为两个步骤:生成随机字符串和将其转化为图形。在JSP中,我们可以使用Java的内置类和库来完成...

    JSP实现验证码数字图片

    **JSP实现验证码数字图片详解** 验证码是一种常用的安全机制,用于防止自动机器人或者恶意脚本进行非法操作,如批量注册、频繁提交等。在Web开发中,JSP(JavaServer Pages)可以用来创建动态验证码图片。本文将...

    JSP验证码+js验证

    1. **生成随机字符串**:通常包含字母和数字,长度可自定义,例如4位或6位。 2. **绘制图像**:使用Java的`java.awt`和`java.awt.image`包,创建一个BufferedImage对象,然后在画布上绘制随机字符串,可以加入噪声、...

    字母+数字验证码 Struts

    在本案例中,我们将探讨如何在Struts2框架下实现字母加数字的验证码功能,包括验证码的刷新以及前后台的处理代码。 首先,验证码的生成通常涉及以下几个步骤: 1. **生成随机字符串**:验证码由随机的字母和数字...

    JSP验证码+刷新java

    下面我们将深入探讨JSP验证码的实现原理、刷新机制以及相关的Java后端技术。 首先,验证码的基本概念是生成一段随机的、难以通过机器识别的文字或数字图像,用户在访问特定页面时需要输入这个验证码,以此验证用户...

    一个jsp 数字验证码的代码

    在本案例中,我们关注的是一个基于JSP(Java Server Pages)实现的数字验证码。下面,我们将深入探讨JSP数字验证码的相关知识点。 1. **JSP基础**: JSP是Java的一种服务器端脚本语言,用于生成动态网页内容。...

    java jsp 生成彩色验证码+验证功能代码,可直接运行,没有数据库

    这个压缩包中的两个例子分别展示了汉字和数字+字母形式的验证码,这使得验证码更加多样化,增加了破解的难度。对于汉字验证码,可能需要汉字字符集的支持,例如GBK或UTF-8。 总之,这个代码实例提供了完整的彩色...

    JSP+servlet验证码登陆

    - **安全性**:为了增加破解难度,验证码应具有一定的复杂性,比如使用大小写字母、数字甚至特殊字符的组合,并且每次登录都应生成新的验证码。 - **有效期**:验证码应该有时间限制,过期后无效,防止被恶意用户...

    JSP 数字验证码 实现方法

    在Java服务器页面(JSP)中实现数字验证码,可以确保用户是真实的个体而非程序。以下是一个简单的JSP数字验证码的实现方法: 首先,我们来看一下JSP的基本结构。`@%&gt;` 和 `是JSP中的脚本元素,它们分别用于执行Java...

    jsp验证码刷新功能

    常见的验证码类型包括文本型验证码(如字母数字组合)、图形验证码(包含扭曲的文字或图案)以及更复杂的交互式验证方式等。其中,文本型验证码是最简单且应用最广泛的一种形式。 #### 二、JSP与JavaScript结合实现...

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

    这个压缩包"5种JSP验证码的源代码.rar"提供的是五种不同的JSP验证码实现方式。下面我们将详细探讨这五种验证码的实现原理和关键知识点。 1. 图片验证码: 这是最常见的验证码类型,通过生成随机字符串并将其绘制到...

    jsp 验证码(servlet)

    【JSP验证码(Servlet)详解】 验证码是一种常用的安全机制,用于防止自动化的恶意程序,如机器人,进行非法操作。在Web开发中,JSP(JavaServer Pages)与Servlet结合使用可以实现动态生成并验证验证码的功能。这...

Global site tag (gtag.js) - Google Analytics