大家元旦快乐~~~
为什么在JSP页面上做了个验证码的servlet,把生成的验证码存入到session中。然后在这个JSP中<%=session.getAttribute("rand") %>返回的总是上次生成的验证码呢?而不是运行时页面上显示的验证码。整个session获得的参数都延迟了。
这里是生成验证码的servlet部分代码:
HttpSession session = request.getSession(true);
session.setAttribute("rand",sRand);
g.dispose();
ImageIO.write(image, "JPEG", response.getOutputStream());
为什么在JSP页面上做了个验证码的servlet,把生成的验证码存入到session中。然后在这个JSP中<%=session.getAttribute("rand") %>返回的总是上次生成的验证码呢?而不是运行时页面上显示的验证码。整个session获得的参数都延迟了。
这里是生成验证码的servlet部分代码:
HttpSession session = request.getSession(true);
session.setAttribute("rand",sRand);
g.dispose();
ImageIO.write(image, "JPEG", response.getOutputStream());
解决方案 »
- jsp项目在linux系统的Tomcat上部署,访问serlvet出现404错误!
- build.xml运行报错,求指点
- 在myeclipse中开发struts需要引入的jar包是什么????
- StringBuffer 转换 string问题
- JAVAscriptE框架网页访问对象,不是太懂老是出问题!
- 这个表如何设计:????????
- 修改和添加功能大家都是在同一个页面上做的,还是用不同的页面?
- 在JSP中对数据库的操作为什么找不到方法呀?
- 求一个关于打开新标签解决方案
- JAVA 操作Excle的问题 (急,在线等).到 先谢谢大家的帮忙!
- serlet传递问题??
- 我些的这段jsp分页显示代码,效率可以吗?
JSP:
<tr bgcolor=#ffffff>
<td height=25 align="left" class="writer">验 证 码:</td>
<td width="60" align="left" class="writer"><input class=input_sr maxlength=4 size=6 name=passcode2>
</span></td>
<td width="320" align="left" class="writer" style="PADDING-LEFT: 5px"><span class="writer" style="PADDING-LEFT: 5px"><img src="authImage" width="70" height="18"></span></td>
</tr>
<tr>
<td align="left" height="35"></td>
<td colspan="2" align="left">
<input type="hidden" name="code" value="<%=session.getAttribute("rand") %>"/>
<input name="Submit" type="button" value="提交" onclick="checkleavemessage()">
<input name="Submit2" type="reset" value="重置"></td>
</tr>
生成验证码的servlet:
//生成随机数,并将随机数字转换为字母
…………………………
String sRand="";
for (int i=0;i<4;i++)
{
int itmp = random.nextInt(26) + 65;
char ctmp = (char)itmp;
sRand += String.valueOf(ctmp);
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
g.drawString(String.valueOf(ctmp),15*i+10,16);
} HttpSession session = request.getSession(true);
session.setAttribute("rand",sRand);
g.dispose();
ImageIO.write(image, "JPEG", response.getOutputStream());
造成在显示验证码时Session变量不能同步问题。
src =''其中填写的应该是调用验证码的servlet吧,你是怎么写的啊????
那先执行完servlet再通过servlet跳去页面也行吧
那先执行完servlet再通过servlet跳去页面也行吧
JSP 里当然只能拿到上一次的了