现在的很多网站,在注册或登录或发表评论或下载文件等等的时候都会生成一些验证码来让用户输入进行校验。这样可以防止某些别有用心的用户利用计算机恶意自动注册,自动登录,恶意增加数据库的访问等等
目前常用的验证码生成方法有很多种,我在里用的是纯数字的验证码,大家都会比较好接受的
在这里我主要是使用了jquery和dwr技术,如果你对dwr技术不是很熟悉的话,可以看一下我上一篇文章。下面来看一下我的实现方法:
首先需要生成一个4位的随机数作为验证码,这个比较简单,来看一下这个类:
package gdut.random;
import java.util.Random;
public class CreateRandom {
private static Random ran = null;
private static String string = "";
public String getRandom(){
if(ran == null){
ran = new Random();
}
string = "";
for(int i=0;i<4;i++){ //生成4位随机数的验证码
string += ran.nextInt(9) + 1;
}
return string;
}
}
接下来是对WEB-INF目录下的web.xml的配置:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>allowScriptTagRemoting</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
接着需要在WEB-INF目录下新建一个dwr.xml文件,并对其做以下配置,具体的配置属性我就不多说了,如有不理解的请看我的上一篇有关dwr的文章:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create javascript="obtainRandom" creator="new">
<param name="class" value="gdut.random.CreateRandom" />
</create>
</allow>
</dwr>
然后是导入dwr框架所需要的jar包,即dwr.jar和commons-logging.jar,这两个包我已添加到附件中。
接下来写一个CSS为验证码生成一张背景图片:
.code_box {
background-image:url(/IdentifyCode/imgs/code_img.jpg);
width:120px;
height:30px;
padding-top:1px;
padding-bottom:1px;
font-size:21px;
background-repeat:no-repeat;
border: #666666 solid 1px;
text-align:center;
text-decoration: line-through;
color: #999999;
font-family: Georgia, "Times New Roman", Times, serif;
position:relative;
}
.cursor {
cursor: pointer;
color: #0033FF;
font-size: 15px;
}
.text_cursor {
cursor: pointer;
color: #0033FF;
text-decoration: underline;
font-size: 15px;
}
.text_cursor:hover {
position:relative;
left:1px;
top: 1px;
}
#btn {
background-color: #99FF33;
}
下面我们来写实现验证码的这个jsp:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>IdentifyCode Page</title>
<!-- 将dwr和jquery框架所用到的js和我们将要写的用来做验证的js以及CSS文件链接进来 -->
<script type="text/javascript" src="/IdentifyCode/js/jquery.js"></script>
<script type="text/javascript" src="/IdentifyCode/js/identify.js"></script>
<script type='text/javascript' src='/IdentifyCode/dwr/interface/obtainRandom.js'></script>
<script type='text/javascript' src='/IdentifyCode/dwr/engine.js'></script>
<script type='text/javascript' src='/IdentifyCode/dwr/util.js'></script>
<link type="text/css" rel="stylesheet" href="/IdentifyCode/css/style.css" />
</head>
<body bgcolor="#FFCC99">
<br/><br/>
<div align="center">
<table>
<tr>
<td>请输入验证码:</td>
<td><input type="text" id="inputCode"/> </td>
<td><span class="code_box" id="code"></span></td>
</tr>
<tr>
<td> </td>
<td><input type="button" class="cursor" id="btn" value=" 验证 " /></td>
<td><span class="text_cursor" id="toGetRandom">看不清 换一个</span></td>
</tr>
<tr>
<td> </td>
<td><span id="msg" style="color:red;"></span></td>
</tr>
</table>
</div>
</body>
</html>
下面我们可以来写校验验证码这个js脚本了:
$(document).ready(function(){
$("#inputCode").css("background-color","#FFFFCC");
createIdentifyCode();
$("#toGetRandom").click(function(){
createIdentifyCode();
});
$("#btn").click(function(){
var createCode = $("#inputCode").val();
var inputCode = $("#code").html();
if(createCode == inputCode){
$("#msg").html("验证通过!");
}else{
$("#msg").html("验证码错误!");
createIdentifyCode();
}
});
$("#inputCode").focus(function(){
$("#inputCode").css("background-color","#FFFFCC");
});
$("#inputCode").blur(function(){
$("#inputCode").css("background-color","#D6D6FF");
});
});
function createIdentifyCode(){
obtainRandom.getRandom(function(string){
$("#code").html(string);
});
}
OK,搞定了。
分享到:
相关推荐
Java阿里云短信验证码实现 Java阿里云短信验证码实现是指通过阿里云短信服务平台发送短信验证码的实现,以下是该实现的详细介绍。 登录阿里云开放平台 在实现Java阿里云短信验证码之前,需要首先登录阿里云开放...
在Java编程语言中,用户注册和登录功能是任何应用程序的核心组成部分,而验证码的引入则可以增强系统的安全性,防止恶意的自动脚本或机器人进行非法操作。在这个项目中,"java 用户注册登录验证码"可能涉及以下几个...
在本场景中,我们将探讨如何使用Java编程语言来实现手机验证码的发送,以及涉及的相关知识点。 首先,我们需要理解手机验证码的基本原理。验证码通常是一串随机生成的数字或字母组合,通过短信的方式发送到用户的...
"JAVA实现注册页面验证码刷新"的课题旨在探讨如何在Java后端生成并更新前端显示的验证码,确保每次用户请求时都能显示新的、随机生成的验证码。下面将详细介绍这个过程涉及的关键知识点。 1. **验证码的生成**: -...
在IT行业中,验证码是一种常见的安全机制,用于防止自动化的机器人或恶意软件进行非法操作,比如自动登录、批量注册等。本教程将详细讲解如何在Java JSP环境下制作一个简单的登录验证码。 首先,我们需要理解验证码...
使用JSP创建注册和登录页面,添加表单供用户输入手机号或邮箱、图形验证码(防止机器人自动提交)以及接收验证码的输入框。表单提交后,通过AJAX异步请求发送验证码,避免页面刷新。 5. **验证过程**: 用户输入...
使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口(遵循短信平台的接口规范即可)发送短信验证码
基于SpringBoot+RabbitMQ用户注册实现异步发送验证码源码。基于SpringBoot+RabbitMQ用户注册实现异步发送验证码源码。基于SpringBoot+RabbitMQ用户注册实现异步发送验证码源码。基于SpringBoot+RabbitMQ用户注册实现...
在提供的压缩包文件"Java验证码实现"中,可能包含了实现以上步骤的Java源代码文件,包括主类、图像处理类和可能的配置文件。通过学习和理解这些代码,你可以进一步掌握Java验证码的实现细节,并将其应用到自己的项目...
在学习这些验证码实现时,你可以通过查看压缩包中的"validateCode"源码文件来深入了解每个验证码的具体实现细节。同时,"截图"可能包含各个验证码的示例图像,帮助理解其外观和工作原理。此外,"关注科帮网获取更多...
验证码是网络安全领域中的一种常见机制,用于防止自动化程序(如机器人)进行非法操作,例如注册、登录或提交表单。本篇文章将详细讨论验证码的基本原理,以及如何使用Java实现简单的验证码破解方法。请注意,了解...
验证码在IT领域中是一种重要的安全机制,主要用于防止自动化的机器人或者恶意软件进行非法操作,比如注册、登录或者发布垃圾信息。在Java编程中,我们可以利用多种技术来实现验证码的生成和验证。以下将详细介绍Java...
手机号验证码是常见的安全机制,用于确认用户提供的电话号码真实有效,常用于注册、登录、找回密码等场景。本篇将详细介绍如何使用Java实现发送手机号验证码的功能。 首先,我们需要理解验证码的基本原理:系统生成...
在提供的`VerificationCode.java`文件中,可能包含了以上所述的验证码实现逻辑。通过阅读源码,我们可以深入了解如何在JAVA中将这些步骤整合到一个完整的验证码生成器中。 总的来说,JAVA验证码的实现结合了图像...
在本项目"JavaWeb练手-实现登录注册(含验证码和表单验证)"中,主要涉及了几个关键的JavaWeb开发技术,包括Servlet、HTML、JSP以及验证码和表单验证的实现。以下是这些知识点的详细说明: 1. **Servlet**:Servlet...
验证码通常在用户登录、注册或其他敏感操作时出现,要求用户输入图像上显示的一组随机字符,以此验证用户是真实的人而非机器。在本实例中,我们将探讨如何使用Java来创建一个简单的登录验证码系统。 首先,验证码的...
在Java Web开发中,验证码(CAPTCHA)是一种用于防止机器人自动操作的重要机制,它通常用于登录、注册等场景,确保用户是真实的、有意识的人而不是自动化脚本。在这个主题中,“java验证码/servlet”指的是使用Java...
它通常由一串随机字符组成,用户需要在输入框中正确输入才能完成某些敏感操作,如注册、登录等。本篇将详细介绍如何在Java中使用Servlet自定义实现验证码功能。 首先,我们需要理解验证码的基本原理。验证码的核心...
JAVA 实现验证码(完整代码) JAVA 实现验证码是一种常见的验证机制,用于防止机器人和自动程序的攻击。下面是关于 JAVA 实现验证码的详细知识点: 验证码的概念和作用 验证码是一种challenge-response测试,用于...