<%@pagecontentType="image/jpeg"import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"%><%!//随机颜色ColorgetRandColor(intfc,intbc){Randomrandom=newRan" />

JSP生成验证码

系统 1488 0

image.jsp

<% @ page language = "java" import = "java.util.*" pageEncoding = "gb2312" %>
<% @ 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 ) ;
}
%>
<%
out . clear ( ) ;
/ / 设置页面不缓存
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 ; 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 ) ;
}
/ / 生成验证码随机数
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 ( "code" , sRand ) ;
g . dispose ( ) ;
/ / 输出图像
ImageIO . write ( image , "JPEG" , response . getOutputStream ( ) ) ;
%>
login.jsp

XHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<% @ page contentType = "text/html; charset=gb2312" language = "java" import = "java.sql.*" errorPage = "" %>
<html>
<head>
<title> 登录页面 </title>
<script language = "javascript" >
function loadimage ( ) {
document . getElementById ( "randImage" ) . src = "image.jsp?" + Math . random ( ) ;
}
</script>
</head>
<body>
<form action = "check.jsp" method = "post" name = "loginForm" >
<td width = "118" height = "22" valign = "middle" align = "center" > <input type = "text" name = "code" size = "15" > </td>
<td width = "138" align = "center" > <a href = "javascript:loadimage();" > <img name = "randImage" id = "randImage" src = "image.jsp" width = "60" height = "20" valign = "middle" border = "1" > </a> 点击图片刷新
<input type = "submit" name = "login" value = "提交" > </td>
</form>
</body>
</html>
check.jsp

XHTML
1
2
3
4
5
6
7
8
9
10
<% @ page contentType = "text/html; charset=gb2312" language = "java" %>
<%
String rand = ( String ) session . getAttribute ( "code" ) ;
String input = request . getParameter ( "code" ) ;
if ( rand . equals ( input ) ) {
out . print ( "<script>alert('验证成功');</script>" ) ;
} else {
out . print ( "<script>alert('验证失败');location.href='login.jsp';</script>" ) ;
}
%>
JSP生成验证码 JSP生成验证码


JSP生成验证码


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论