第一个网页  ----------------------------------------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(); 

%>

解决方案 »

  1.   

    lz
    你都没说什么问题啊 
      

  2.   

    不知道楼主要干什么,提交到了一个新生成的验证码页面?
      

  3.   

    估计是大概在刷新的时候还是那些验证码
    像问为什么没变的原因吧
      

  4.   

    顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!
      

  5.   

    顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!