Java通用验证码程序及应用示例(提供源码文档下载)
来源:互联网 发布:类似it桔子 编辑:程序博客网 时间:2024/06/08 14:07
把之前项目中写的一个Java通用验证码程序整理了一下,与大家分享,希望能抛砖引玉。
一、主要功能:
1、支持纯数字、大写字母、小写字母,及两两混合或三者混合类型验证码;
2、支持自定义特殊字符排除(如0oOi1jI);
3、支持图片及文字两种类型验证码;
4、支持自定义验证码图片大小;
5、支持自定义干扰线条数;
6、支持自定义及随机定义图片、文字、干扰线颜色;
其他:页面提供了<iframe>和<img>两种页面显示验证码的方式。
a、仅阿拉伯数字
b、仅字母(大小写混合)
c、仅小写字母
d、仅大写字母
d、数字与小写字母混合
e、数字与大写字母混合
f、数字与大小写字母混合
g、自定义字符颜色(或随机)
h、自定义图片颜色(或随机)
i、自定义干扰线的条数及颜色(或随机)
j、自定义验证码图片大小
k、自定义需排除的特殊字符(如0o等难分辨字符)
二、代码说明:
1、pubMsg.jsp 发表留言页面,实现<iframe>和<img>两种显示验证码方式,及ajax提交功能
页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><%=basePath%></title>
</head>
<script type="text/javascript">
var req;
//提交留言
function pubMsg(){
msgTitle=document.msgForm.msgTitle.value;
msgContent=document.msgForm.msgContent.value;
verifyCode=document.msgForm.verifyCode.value;
//检查输入内容格式
if(msgTitle.length<5||msgContent.length<5)
{
alert("标题和内容不能少于5个字符");
return;
}
if(verifyCode.length==0){
alert("请输入验证码");
return;
}
//获得XMLHttpRequest对象
if(window.XMLHttpRequest)
req=new XMLHttpRequest();
else if(window.ActiveXObject)
req=new ActiveXObject("Microsoft.XMLHTTP");
//提交请求
if(req){
req.onreadystatechange=callBack;//指定服务器响应结果处理函数(注意仅函数名无括号)
url="<%=path%>/servlet/PubMsgServlet?msgTitle="+msgTitle+"&msgContent="+msgContent+"&verifyCode="+verifyCode;
req.open("GET",url,false);
req.send();
}
}
//服务器响应结果处理函数
function callBack(){
if(req.readyState==4){
if(req.status==200){
next=req.responseText;//获得服务器处理结果
if(next=="this"){
alert("验证码不正确,请重新输入");
verifyCodeFrame.location.reload();//刷新验证码
}
else{
document.msgForm.msgTitle.value="";
document.msgForm.msgContent.value="";
window.location=next;//跳转页面
}
}else
{
alert(req.status+":"+req.statusText);
}
}
document.msgForm.verifyCode.value="";
}
//更换验证码
function changeVerifyCode(){
//1、如果用<iframe>实现,则重新加载<iframe>的内容
//verifyCodeFrame.location.reload();
//2、如果用<img>实现,则修改<img src=url>的url
//这里有一个小技巧,如果给url赋相同的值,浏览器不会重新发出请求,因此用js生成一个即时毫秒数做url中的参数
t=new Date().getTime();
document.msgForm.verifyCodeImg.src="<%=path%>/servlet/VerifyCodeServlet?t="+t;
}
</script>
<body>
<form name="msgForm" action="" method="post">
<table border=0>
<tr><td>标题:</td><td><input name="msgTitle" size="65"/></td></tr>
<tr><td>内容:</td><td><textarea name="msgContent" rows="10" cols="64"></textarea></td></tr>
<tr><td>验证码:</td><td><input name="verifyCode" style="height:29px;width=70px;font-size:25px"/>
<!-- 采用<iframe>实现 -->
<!--
<iframe name="verifyCodeFrame" src="<%=path+"/servlet/VerifyCodeServlet"%>" width="100" height="30" frameborder=0 align="top" marginheight=0 marginwidth=0 scrolling=no></iframe>
-->
<!-- 采用<img>实现 -->
<img name="verifyCodeImg" src="<%=path%>/servlet/VerifyCodeServlet" style="cursor:hand" align="top" onClick="changeVerifyCode()"/>
<font style="color:blue;font-size=14"><a href="javascript:changeVerifyCode()">看不清?</a></font>
<input type="button" value=" 发表留言 " onClick="pubMsg()"/></td></tr>
</table>
</form>
</body>
</html>
2、ok.jsp 留言发布成功页面(示意)
页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
您的留言已提交!<input type="button" value=" OK " onClick="window.history.go(-1)"/><br>
</body>
</html>
3、org.javachina.util.VerifyCode.java 验证码生成器类
4、org.javachina.servlet.VerifyCodeServlet.java 接受客户端请求,向客户端输出验证码
5、org.javachina.servlet.PubMsgServlet.java 保存留言信息(比对验证码)
以上源码、文档下载地址:http://download.csdn.net/source/1851509
以上,望抛砖引玉,欢迎交流:hufoking@hotmail.com!
- Java通用验证码程序及应用示例(提供源码文档下载)
- Portal-Basic Java Web 应用开发框架(v2.5.4 - 源码、示例及文档可在 Google Code 下载)
- Portal-Basic Java Web 应用开发框架(源码、示例及文档)
- Portal-Basic Java Web 应用开发框架 v2.6.1(源码、示例及文档)
- Portal-Basic Java Web 应用开发框架 v2.6.2 发布(源码、示例及文档)
- Portal-Basic Java Web 应用开发框架 v3.0.1 正式发布(源码、示例及文档)
- javascript通用验证码,textarea及示例
- 【双旦献礼】Portal-Basic Java Web 应用开发框架 v3.0.1 正式发布(源码、示例及文档)
- 【双旦献礼】Portal-Basic Java Web 应用开发框架 v3.0.1 正式发布(源码、示例及文档)
- [验证码识别] C#识别验证码图片通用类(附源码下载)
- WCF 简单示例程序(源码下载)
- Microsoft ASP.NET MVC Preview 5 及LINQ TO SQL最新版开发示例演示(提供源码下载)
- Microsoft ASP.NET MVC Preview 5 及LINQ TO SQL最新版开发示例演示(提供源码下载)
- C#识别验证码图片通用类(附源码下载)
- Winform 通用分页控件实战篇(提供源码下载)
- [提供源码下载]在大型软件中用Word做报表:书签的应用(提供一种思路)
- andengine源码及示例程序
- 演示程序及文档下载
- EXT 中的Grid实例
- 对引用和指针使用以及函数返回引用和指针类型的理解
- oracle中的NVL,NVL2,NULLIF,COALESCE几个通用函数
- li中的图片和文字不对齐div+css,解决方法
- 查看SQL Server中某数据库下每个表占用的空间大小
- Java通用验证码程序及应用示例(提供源码文档下载)
- 新手如何在有关期刊上发表论文
- Flex Error Classes Poster
- C++ 初学者指南 第二篇(3)
- Button控件的UseSubmitBehavior属性
- 设计模式之Template
- 正则表达式全部符号解释
- 介绍Brook+的kernel到IL的转化方法和优化技巧
- web.xml配置