前段时间做了个验证码的界面,发现在页面中session怎么取都取不到当前的值搞了2天才明白一点点但是还不是很理解求大神指教!!
 具体情况是这样的:我在生成验证码的servlet中 把验证码的值设置到session中  , 在jsp页面中的script脚本中用<%=session.getAttribute("number") %>取出验证码的值。
  出现的问题:第一次进jsp页面时session取出的值是null,当刷新页面后session中有值可是不是本次验证码的值而是上次产生的值。(在servlet中后台打印查看时 每次session中的值都是正确的,即都是当前验证码的值)
  个人理解: 是不是一进入jsp页面就产生一个空的session,在servlet中生成的验证码虽然设置到session中但是页面没刷新所以不论后台的session中存的值如何变 本页面的session还是一开始那个?

解决方案 »

  1.   

    第一次打开页面,session是没有值的,你生成验证码图片了,session中有值了,但这个值并没有输出到客户端,而是在服务器,你刷新页面,session中的值却是你上次生图片的值,就这样吧,所以说,
    用js获得session中的值,只能ajax,
    当然你可以提交到后台再检验验证码,ajax这一步就可以免了,但提交了,也就刷新了,不是很友好!
      

  2.   

    demo:
    http://download.csdn.net/detail/s478853630/4064638
    不妨一试!
      

  3.   

    当你从后台跳至jsp页面之后,session已经有值了,这时候如果你发送的是Ajax请求,不管你怎么修改服务器的session的值,只要该jsp没有发生跳转就永远都是最开始的那个值,除非你再发送Ajax去服务器取session的值才是最新的。。楼主 ,是要这样子吗?