session与jsp页面间的关系
前段时间做了个验证码的界面,发现在页面中session怎么取都取不到当前的值。。。搞了2天才明白一点点但是还不是很理解求大神指教!!
具体情况是这样的:我在生成验证码的servlet中 把验证码的值设置到session中 , 在jsp页面中的script脚本中用<%=session.getAttribute("number") %>取出验证码的值。
出现的问题:第一次进jsp页面时session取出的值是null,当刷新页面后session中有值可是不是本次验证码的值而是上次产生的值。(在servlet中后台打印查看时 每次session中的值都是正确的,即都是当前验证码的值)
个人理解: 是不是一进入jsp页面就产生一个空的session,在servlet中生成的验证码虽然设置到session中但是页面没刷新所以不论后台的session中存的值如何变 本页面的session还是一开始那个?
------解决方案--------------------
第一次打开页面,session是没有值的,你生成验证码图片了,session中有值了,但这个值并没有输出到客户端,而是在服务器,你刷新页面,session中的值却是你上次生图片的值,就这样吧,所以说,
用js获得session中的值,只能ajax,
当然你可以提交到后台再检验验证码,ajax这一步就可以免了,但提交了,也就刷新了,不是很友好!