`

JAVA学习提高之---- JSP验证码的实现代码

阅读更多

验证码制作之五: 绘制带背景图的图形验证码方法

验证码制作之四: 位数可改变内容可扩展的验证码产生方法

验证码制作之二: 可选择位数的字符与数字混合码

验证码制作之三: 通过ASCEE码随机生成4位字符与数字验证码

验证码制作之一: 随机生成一个四位数字

image.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@ 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());
%>
</body>
</html>

vImage.jsp

<%@ page contentType="text/html;charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>认证码输入页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<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>
</table>
</form>

</body>
</html>

check.jsp

<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>认证码验证页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<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代码实现验证码功能详解 #### 一、概述 本文档详细介绍了如何使用Java Server Pages (JSP)技术来实现一个简单的验证码功能。验证码在Web应用中是一种常见的安全措施,用于防止自动化软件进行恶意操作,如...

    java 实现验证码(servlet+jsp)

    在Java Web开发中,我们可以使用Servlet和JSP来实现一个简单的图形验证码。以下将详细介绍如何利用这两个技术进行验证码的实现。 首先,理解验证码的基本原理:验证码是一种通过图像显示随机字符或数字的方式,用户...

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

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

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

    在这个提供的压缩包中,包含的是一个基于Java实现的彩色验证码生成与验证的功能代码,适用于网页安全验证,防止自动机器人或恶意攻击。验证码通常由随机字符组成,目的是确保用户是人类而非自动化程序。 1. **彩色...

    验证码生成jsp 代码

    压缩包中的"验证码生成"文件可能包含了实现上述步骤的JSP代码示例。通过查看和学习这个示例,你可以了解到如何在实际项目中生成和使用验证码。为了深入理解,你需要了解JSP语法、Java图像处理以及HTTP会话管理等相关...

    5种JSP验证码的源代码

    总结来说,"5种JSP验证码的源代码"是一个非常实用的学习资源,它涵盖了验证码的多种实现方式,对于提升JSP开发者在网页安全领域的技能大有裨益。无论是初学者还是有经验的开发人员,都能从中获取有价值的信息,并将...

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

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

    jsp教程JSP验证码代码

    - `jsp教程JSP验证码代码.txt` 文件可能包含了实现JSP验证码功能的Java代码片段,包括生成随机字符串、创建图像、保存和验证验证码等步骤。具体代码因实现方式而异,通常包括以下关键部分: - 生成随机字符串的...

    JSP 验证码代码 JSP 验证码代码

    综上所述,JSP验证码代码涉及了图像处理、随机数生成、HTTP会话管理等多个技术点。理解这些知识点有助于开发者构建更安全、更易用的Web应用。在实际开发中,还可以结合现有的开源验证码库,如JCaptcha或Google的...

    jsp常用经典代码(md5java实现,生成中文/数字验证码,解决中文乱码)

    `image.jsp`可能包含创建这种验证码的逻辑,它可能使用了`java.awt`和`javax.imageio`包中的类来生成图像,并将随机生成的中文字符或数字写入其中。验证码的生成通常还包括设置字体、颜色、噪声等以增加破解难度。 ...

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

    在Java服务器页面(JSP)中,验证码是一种常见的安全机制,用于防止自动化程序或恶意用户进行非法操作。验证码通常是一串随机生成的字符或数字,用户需要在输入框中正确输入才能继续操作,如登录、注册等。在这个...

    一个jsp 数字验证码的代码

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

    jsp页面验证码---源码

    JSP验证码是Java Web开发中一种常见的验证码实现方式。 **1. 验证码的基本构成** 验证码通常由一串随机字符组成,可以是字母、数字、特殊字符的组合,也可以是图片形式,包含扭曲的字符图像。用户在访问网页时,...

    JSP 数字验证码 实现方法

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

    验证码jsp源代码

    以下是关于JSP验证码实现及相关知识点的详细解释: 1. **JSP(JavaServer Pages)**:JSP是Java平台上的动态网页技术,允许开发者将HTML、CSS、JavaScript与Java代码混合编写,服务器端执行Java代码并返回结果到...

    生成验证码图片的jsp代码

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

    jsp验证码——数字

    这个JSP验证码生成器示例展示了如何使用JSP和Java图形处理库来创建动态的数字验证码。通过设置页面属性、控制页面缓存、生成随机颜色和线条、管理HTTP会话等技术手段,有效地提高了验证码的安全性和用户体验。这种...

    jsp验证码学习代码

    ### jsp验证码学习代码 #### 一、简介 在web应用程序的安全性方面,验证码是一种常见的保护机制,可以有效防止机器自动填写表单等自动化攻击行为。对于使用Java Server Pages(JSP)技术进行Web开发的技术人员来说...

    Jsp-color-code.rar_java 验证码_jsp_汉字验证码_随机验证码_验证码

    首先,Java验证码的实现通常基于Servlet和JSP技术。Servlet是Java服务器端编程的基础,可以处理HTTP请求,而JSP则是用于创建动态Web页面的工具,它可以结合HTML、CSS和Java代码来呈现内容。在这个项目中,开发者可能...

Global site tag (gtag.js) - Google Analytics