jsp的验证码点下一张,需要点显示图片才能看到 立刻给分

yaoho_11 2010-05-20 02:31:30
登录程序遇到点小问题。 login.jsp上面有个验证码图片,是用servlet实现的,每次点击下一张的时候会去调用一个页面,触发servlet 生成图片文字返回。 在开发的几台机器上都没有问题。但是在测试人员的机器上出现了问题。 一开始到登录页面上有验证码,测试人员点击下一张的时候就成了一个空白图片。需要点击显示图片才能出现。在线等求高手解决
...全文
325 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
是风啊a 2010-05-21
  • 打赏
  • 举报
回复
一可能是网速问题,二可能是他机器上有什么软件对图片的限制,三可能是他IE的设置问题,四可能是系统问题。
wang1986614 2010-05-21
  • 打赏
  • 举报
回复
RP!!!
cuiqunhao 2010-05-20
  • 打赏
  • 举报
回复
随机数和加时间清缓存,应该是加时间好啊,,,为什么呢?
yaoho_11 2010-05-20
  • 打赏
  • 举报
回复
恩 改成楼上的是可以的
yuanpolo 2010-05-20
  • 打赏
  • 举报
回复
有用我的试过吗?
yaoho_11 2010-05-20
  • 打赏
  • 举报
回复
呃 有人知道吗 在线等呢
guoanwu123 2010-05-20
  • 打赏
  • 举报
回复
gfdhykyuijbjhkjk
yaoho_11 2010-05-20
  • 打赏
  • 举报
回复
==========验证码部分========
<tr>
<th>验证码:</th>
<td><table width="170" border="0" cellpadding="0" cellspacing="0" class="loginyz">
<tr>
<td width="100"><label>
<input type="text" name="mark" id="textfield5" onkeydown="return enterEvent();"/>
</label></td>
<!-- 验证码的生成重写 modify by su -->
<td width="70"align="left"><img src="imageCheckCode.jsp?<%=new Date().getTime() %>" id="image_1" width="100%" height="25" /></td>
</tr>
</table></td>
<td><a href="javascript:void(0);" onclick="document.getElementById('image_1').src='imageCheckCode.jsp?a='+(new Date()).getTime()">换一张</a></td>
</tr>



======'imageCheckCode.jsp 代码====
// 设置页面不缓存
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);

// 设置图片的长宽
int width = 62, height = 20;

// ////// 创建内存图像
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = image.createGraphics();



// 设定图像背景色(因为是做背景,所以偏淡)
Random random = new Random();
g.setColor(new Color(180 + random.nextInt(70), 180 + random.nextInt(70), 180 + random.nextInt(70)));
g.fillRect(0, 0, width, height);
// 设置字体
g.setFont(new Font("Times New Roman", Font.PLAIN, 19));

// /////设置默认生成4个验证码
int length = 4;
java.util.Random rand = new Random(); // 设置随机种子

// 设置备选验证码:包括"A-Z"和数字"0-9"
String base = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
int size = base.length();
StringBuffer str = new StringBuffer();
for (int i = 0; i < length; i++) {
int start = rand.nextInt(size);
String tmpStr = base.substring(start, start + 1);

str.append(tmpStr);
// 生成随机颜色(因为是做前景,所以偏深)
g.setColor(new Color(10 + random.nextInt(140), 10 + random.nextInt(140), 10 + random.nextInt(140)));

// 将此字画到图片上
g.drawString(tmpStr, 13 * i + rand.nextInt(5), 14 + rand
.nextInt(6));

}

// 将认证码存入session
request.getSession().setAttribute("rand", str.toString());
// 图象生效
g.dispose();

// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
yuanpolo 2010-05-20
  • 打赏
  • 举报
回复
document.getElementById("u img ID").src="u servlet url?dt="+Math.random();

example:

document.getElementById("imageLabel").src="image?dt="+Math.random();

试试这个!
lu76689614 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 yaoho_11 的回复:]
登录程序遇到点小问题。 login.jsp上面有个验证码图片,是用servlet实现的,每次点击下一张的时候会去调用一个页面,触发servlet 生成图片文字返回。 在开发的几台机器上都没有问题。但是在测试人员的机器上出现了问题。 一开始到登录页面上有验证码,测试人员点击下一张的时候就成了一个空白图片。需要点击显示图片才能出现。在线等求高手解决
[/Quote]

浏览器有关系

网速有关系

RP有关系 哈哈
dahaidao 2010-05-20
  • 打赏
  • 举报
回复
发代码,测试一下。
yaoho_11 2010-05-20
  • 打赏
  • 举报
回复
不是。 我们开发这边完全没有问题。 他们测试的机器上会出现这个问题,我觉得会不会是网页设置问题。 测试还和我们离的比较远,不好调试,在我们自己这里又不好重现问题…… 崩溃了
a21768541 2010-05-20
  • 打赏
  • 举报
回复
居然点击显示图片可以的话,
那就debug一下,看下点击下一张的时候,连接过去了没有。。。
lu76689614 2010-05-20
  • 打赏
  • 举报
回复
点下一张先刷新下 在调用下个页面

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧