session与jsp页面间的关系

rulky 2012-08-19 04:56:59
前段时间做了个验证码的界面,发现在页面中session怎么取都取不到当前的值。。。搞了2天才明白一点点但是还不是很理解求大神指教!!
具体情况是这样的:我在生成验证码的servlet中 把验证码的值设置到session中 , 在jsp页面中的script脚本中用<%=session.getAttribute("number") %>取出验证码的值。
出现的问题:第一次进jsp页面时session取出的值是null,当刷新页面后session中有值可是不是本次验证码的值而是上次产生的值。(在servlet中后台打印查看时 每次session中的值都是正确的,即都是当前验证码的值)
个人理解: 是不是一进入jsp页面就产生一个空的session,在servlet中生成的验证码虽然设置到session中但是页面没刷新所以不论后台的session中存的值如何变 本页面的session还是一开始那个?
...全文
108 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
当你从后台跳至jsp页面之后,session已经有值了,这时候如果你发送的是Ajax请求,不管你怎么修改服务器的session的值,只要该jsp没有发生跳转就永远都是最开始的那个值,除非你再发送Ajax去服务器取session的值才是最新的。。楼主 ,是要这样子吗?
rulky 2012-08-19
  • 打赏
  • 举报
回复
谢谢解惑!
s478853630 2012-08-19
  • 打赏
  • 举报
回复
demo:
http://download.csdn.net/detail/s478853630/4064638
不妨一试!
s478853630 2012-08-19
  • 打赏
  • 举报
回复
第一次打开页面,session是没有值的,你生成验证码图片了,session中有值了,但这个值并没有输出到客户端,而是在服务器,你刷新页面,session中的值却是你上次生图片的值,就这样吧,所以说,
用js获得session中的值,只能ajax,
当然你可以提交到后台再检验验证码,ajax这一步就可以免了,但提交了,也就刷新了,不是很友好!

81,091

社区成员

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

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