首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

简单的 jsp验证码 代码!该如何解决

2012-01-05 
简单的 jsp验证码 代码!第一个网页----------------------------------------a.html---------------------

简单的 jsp验证码 代码!
第一个网页 ----------------------------------------a.html----------------------------------------------

<html> 
<body>  

<form method=post action="c.jsp">  
<input type=text name=input maxlength=4>  
<img border=0 src="b.jsp">  
<input type="submit" value="submit">  
</form> 

</body> 
</html>




第二个网页 --------------------- b.jsp -----------------------------------------------------

<%@ page contentType="image/JPEG" 
import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" 
pageEncoding="GBK"%> 
<%!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); 
}%> 
<% 
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 < 100; 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); 


// 取随机产生的认证码(4位数字)  
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.setAttribute("code", sRand); 

g.dispose(); 

ImageIO.write(image, "JPEG", response.getOutputStream()); 
%>




第三个网页 -----------------------------c.jsp----------------------------------------------

<%@ page 
import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"%> 
<%@ page import="java.io.OutputStream"%> 
<%!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); 
}%> 
<% 
try { 
response.setHeader("Pragma", "No-cache"); 
response.setHeader("Cache-Control", "no-cache"); 
response.setDateHeader("Expires", 0); 
int width = 60, height = 16; 
BufferedImage image = new BufferedImage(width, height, 
BufferedImage.TYPE_INT_RGB); 
OutputStream os = response.getOutputStream(); 
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, 14); 

session.setAttribute("code", sRand); 
g.dispose(); 

ImageIO.write(image, "JPEG", os); 
os.flush(); 
os.close(); 
os = null; 
response.flushBuffer(); 
out.clear(); 
out = pageContext.pushBody(); 
} catch (IllegalStateException e) { 
System.out.println(e.getMessage()); 
e.printStackTrace(); 

%>




[解决办法]
jf!!!!!!!!!!!!!!!!!!!!!!!!!
[解决办法]
lz
你都没说什么问题啊
[解决办法]
不知道楼主要干什么,提交到了一个新生成的验证码页面?
[解决办法]
估计是大概在刷新的时候还是那些验证码
像问为什么没变的原因吧
[解决办法]
顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!
[解决办法]
顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!
[解决办法]
顶....

热点排行