点击这里使用RSS订阅本Blog:
jsp实现彩色验证码 你只用复制粘贴就可以了
转自【http://www.blogjava.net/zcq87642231/archive/2008/02/24/181748.html】
Demo1.jsp
Demo.jsp
Demo2.jsp
1
<%
@ page language
=
"
java
"
import
=
"
java.util.*
"
pageEncoding
=
"
ISO-8859-1
"
%>
<% @ page import = " java.awt.* " %>
<% @ page import = " java.awt.image.* " %>
<% @ page import = " javax.imageio.* " %>
<%!
Color getRanColor( 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);
}
%>
<%
response . setHeader( " Pragma " , " No-cache " );
response . setHeader( " Cache-Control " , " no-che " );
response . setDateHeader( " Expires " , 0 );
int width = 60 ;
int height = 20 ;
BufferedImage image = new BufferedImage(width , height , BufferedImage . TYPE_INT_RGB);
Graphics g = image . getGraphics();
Random random = new Random();
g . setColor(getRanColor( 200 , 250 ));
g . fillRect( 0 , 0 , width , height);
g . setFont(new Font( " Times New Roman " , Font . PLAIN , 18 ));
g . setColor(getRanColor( 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 ) , 40 + random . nextInt( 110 ) , 60 + random . nextInt( 110 )));
g . drawString( rand , 13 * i + 6 , 16 );
}
session . setAttribute( " rand " , sRand );
g . dispose();
ImageIO . write (image , " JPEG " , response . getOutputStream());
%>
<% @ page import = " java.awt.* " %>
<% @ page import = " java.awt.image.* " %>
<% @ page import = " javax.imageio.* " %>
<%!
Color getRanColor( 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);
}
%>
<%
response . setHeader( " Pragma " , " No-cache " );
response . setHeader( " Cache-Control " , " no-che " );
response . setDateHeader( " Expires " , 0 );
int width = 60 ;
int height = 20 ;
BufferedImage image = new BufferedImage(width , height , BufferedImage . TYPE_INT_RGB);
Graphics g = image . getGraphics();
Random random = new Random();
g . setColor(getRanColor( 200 , 250 ));
g . fillRect( 0 , 0 , width , height);
g . setFont(new Font( " Times New Roman " , Font . PLAIN , 18 ));
g . setColor(getRanColor( 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 ) , 40 + random . nextInt( 110 ) , 60 + random . nextInt( 110 )));
g . drawString( rand , 13 * i + 6 , 16 );
}
session . setAttribute( " rand " , sRand );
g . dispose();
ImageIO . write (image , " JPEG " , response . getOutputStream());
%>
Demo.jsp
<%
@ page language
=
"
java
"
pageEncoding
=
"
gbk
"
%>
<% @ taglib uri = " http://struts.apache.org/tags-bean " prefix = " bean " %>
<% @ taglib uri = " http://struts.apache.org/tags-html " prefix = " html " %>
<% @ taglib uri = " http://struts.apache.org/tags-logic " prefix = " logic " %>
<% @ taglib uri = " http://struts.apache.org/tags-tiles " prefix = " tiles " %>
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN " >
< html : html lang = " true " >
< head >
< html : base />
< title > Demo . jsp </ title >
< meta http - equiv = " pragma " content = " no-cache " >
< meta http - equiv = " cache-control " content = " no-cache " >
< meta http - equiv = " expires " content = " 0 " >
< meta http - equiv = " keywords " content = " keyword1,keyword2,keyword3 " >
< meta http - equiv = " description " content = " This is my page " >
<!--
< link rel = " stylesheet " type = " text/css " href = " styles.css " >
-->
</ head >
< body >& nbsp;
< form action = " Demo2.jsp " >
< input type = " text " name = " asd " > < img border = " 0 " src = " Demo1.jsp " >
< br >
< input type = " submit " name = " b " value = " 点击 " >
</ form >
</ body >
</ html : html >
<% @ taglib uri = " http://struts.apache.org/tags-bean " prefix = " bean " %>
<% @ taglib uri = " http://struts.apache.org/tags-html " prefix = " html " %>
<% @ taglib uri = " http://struts.apache.org/tags-logic " prefix = " logic " %>
<% @ taglib uri = " http://struts.apache.org/tags-tiles " prefix = " tiles " %>
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN " >
< html : html lang = " true " >
< head >
< html : base />
< title > Demo . jsp </ title >
< meta http - equiv = " pragma " content = " no-cache " >
< meta http - equiv = " cache-control " content = " no-cache " >
< meta http - equiv = " expires " content = " 0 " >
< meta http - equiv = " keywords " content = " keyword1,keyword2,keyword3 " >
< meta http - equiv = " description " content = " This is my page " >
<!--
< link rel = " stylesheet " type = " text/css " href = " styles.css " >
-->
</ head >
< body >& nbsp;
< form action = " Demo2.jsp " >
< input type = " text " name = " asd " > < img border = " 0 " src = " Demo1.jsp " >
< br >
< input type = " submit " name = " b " value = " 点击 " >
</ form >
</ body >
</ html : html >
Demo2.jsp
<%
@ page language
=
"
java
"
import
=
"
java.util.*
"
pageEncoding
=
"
ISO-8859-1
"
%>
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN " >
< html >
< head >
< title > My JSP ' Demo2.jsp ' starting page </ title >
</ head >
< body >
<%
String input = request . getParameter( " asd " );
String rand = (String)request . getSession() . getAttribute( " rand " );
if (input . equals( rand ))
{
}
else
{
%>
< jsp : forward page = " Demo.jsp " ></ jsp : forward >
<%
}
%>
asdasd
</ body >
</ html >
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN " >
< html >
< head >
< title > My JSP ' Demo2.jsp ' starting page </ title >
</ head >
< body >
<%
String input = request . getParameter( " asd " );
String rand = (String)request . getSession() . getAttribute( " rand " );
if (input . equals( rand ))
{
}
else
{
%>
< jsp : forward page = " Demo.jsp " ></ jsp : forward >
<%
}
%>
asdasd
</ body >
</ html >