验证码登陆中session加载晚于jsp解决办法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了验证码登陆中session加载晚于jsp解决办法相关的知识,希望对你有一定的参考价值。

  在页面加载的时候jsp页面会先加载,而session并未加载到页面,采用<input type="text" value="${code}"/>的方式,显示为null.

实际上,sesion已经加载到作用域中.网上看到一种处理办法是采用js生成验证码,值可以在jsp中直接获取,但这样就失去验证的意义,通过抓包可以直接读到验证码.做不到区分机器和人的作用.

  protected void service(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
      Object attribute = request.getSession().getAttribute("code");
    }

在提交方法中进行验证,跳转到用户名和密码的校验servlet中,通过request.getSession().getAttribute("code");方法拿到session的值.去和页面中input的值进行比较.失败则返回文本 验证码错误 .




以上是关于验证码登陆中session加载晚于jsp解决办法的主要内容,如果未能解决你的问题,请参考以下文章

JSP中怎样用session保存并验证用户登录信息

解决Andriod获取Session里面的值为空

jsp中生成的验证码和存在session里面的验证码不一致的处理

通过Session共享数据验证码进行用户登录

thinkphp在ubuntu下验证码无法加载或者验证码错误问题的解决

网页登陆注册(jsp实现)验证码