Jsp生成页面验证码的方法[附代码]

宠物医院设计

宠物医院设计

2016-02-19 11:15

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐Jsp生成页面验证码的方法[附代码],无聊中的都看过来。
image.jsp------------------------------生成随机验证码图片的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(fc255) fc=255;
if(bc255) 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;i155;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);
}
String sRand="";
for (int i=0;i4;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());
%

logic.jsp--------------------------------登陆页面,在这里提供输入验证码然后提交并验证
代码如下: 
代码如下:

%@ page contentType="text/html;charset=gbk" %
%@ page language="java" import="java.sql.*" errorPage="" %
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" cellpadding="0" cellspacing="0"
!--DWLayoutTable--
form action="validate.jsp" method="post" name="loginForm"
tr
td width="118" height="22" valign="middle" style="text-align:center"input type="text" name="rand" size="15"/td
td width="138" valign="middle" style="text-align:center"img alt="" name="randImage" id="randImage" src="image.jsp" width="60" height="20" align="absmiddle"/td
/tr
tr
td height="36" colspan="2" style="text-align:center" valign="middle"a href="javascript:loadimage();"font class=pt95看不清点我/font/a/td
/tr
tr
td height="36" colspan="2" style="text-align:center" valign="middle"input type="submit" name="login" value="提交"/td
/tr
/form
/table
/body
/html

validate.jsp--------------------------用来验证输入的验证码是否正确
代码如下:
代码如下:

%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %
%
String rand = (String)session.getAttribute("rand");
String input = request.getParameter("rand");
if(rand.equals(input)){
out.print("scriptalert('验证通过!');/script");
} else{
out.print("scriptalert('请输入正确的验证码!');location.href='login.jsp';/script");
}
%

以上三个JSP页面放在和WEB-INF同级目录下,如果你放在不同的文件夹下,那么里面相关页面的路径自己稍作更改就可以了。
友情提示:Tomcat5以下版本会出现异常
展开更多 50%)
分享

猜你喜欢

Jsp生成页面验证码的方法[附代码]

Web开发
Jsp生成页面验证码的方法[附代码]

jsp 生成验证码代码

Web开发
jsp 生成验证码代码

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JSP验证码代码

Web开发
JSP验证码代码

JSP彩色验证码的实例代码

Web开发
JSP彩色验证码的实例代码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

使用jsp生成彩色汉字验证码

Java JAVA基础
使用jsp生成彩色汉字验证码

JSP彩色验证码

Java JAVA基础
JSP彩色验证码

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

hibernate更新数据方法小结

hibernate更新数据方法小结

java 易懂易用的MD5加密(可直接运行)(2)

java 易懂易用的MD5加密(可直接运行)(2)
下拉加载更多内容 ↓