Java实现验证码具体代码
本文导语: 这里实现我使用到了struts2模拟一个登录功能来验证java实现的验证码功能。 Java实现验证码的步骤: 1、创建RandomImageGenerator.java类,该类实现验证码图片的生成 2、创建一个servlet类,RandomImageServlet.java,将生成的验证码输出到页...
这里实现我使用到了struts2模拟一个登录功能来验证java实现的验证码功能。
Java实现验证码的步骤:
1、创建RandomImageGenerator.java类,该类实现验证码图片的生成
2、创建一个servlet类,RandomImageServlet.java,将生成的验证码输出到页面
3、创建一个Action类,LoginAction.java,控制登录
4、配置struts.xml一个web.xml文件
5、编写页面
具体实现用代码表达
1、创建RandomImageGenerator.java类
package com.tenghu.code;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
import javax.imageio.ImageIO;
/**
* 验证码生成类
* @author xiaohu
*
*/
public class RandomImageGenerator {
//创建Random对象
static Random random=new Random();
//随机生成包含验证码字符串
public static String random(int num){
//初始化种子
String[] str={"0","1","2","3","4","5","6","7","8","9",
"a","b","c","d","e","f","g","h","i","j",
"k","l","m","n","p","q","r","s","t"};
int number=str.length;
//接收随机字符
String text = "";
//随机产生4个字符的字符串
for(int i=0;i
text/html
result
This is the description of my J2EE component
This is the display name of my J2EE component
RandomImageServlet
com.tenghu.code.servlet.RandomImageServlet
width
130
height
40
num
4
RandomImageServlet
/verification.do
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
index.jsp
5、编写测试页面
My JSP 'index.jsp' starting page
$(document).ready(function(){
CODE.initCode();
//验证输入
function checkInput(){
if($('#userName').val()==''){
alert('用户名不能为空!');
return false;
}
if($('#password').val()==''){
alert('密码不能为空!');
return false;
}
if($('#code').val()==''){
alert('验证码不能为空!');
return false;
}
return true;
}
//点击按钮
$('#btn').click(function(){
if(checkInput()==true){
$('#login_request').ajaxSubmit({
url:'login!testLogin',
cache:false,
type:'POST',
success:function(data){
if(data==0){
alert('验证码错误!');
//改变验证码
CODE.initCode();
}else if(data==1){
alert('登录成功!');
//提交到登录成功页面
$('#login_request')[0].submit();
}else if(data==2){
alert('用户名或密码错误!');
//改变验证码
CODE.initCode();
}
},
error:function(e){
alert('出错了!');
}
});
}
});
});
var CODE={
//初始化化验证码
initCode:function(){
$("#code_img").attr("src","verification.do?rmd="+new Date().getTime())//如果需要点击图片改变图片的内容,则必须添加时间搓
.click(function(){
$(this).attr("src","verification.do?rmd="+new Date().getTime());
});
}};
UserName:
Password:
Verification_Code:
成功页面就部贴出来了,就是一段文字而已
显示结果: