2、Java Web中出现验证码无法匹配的问题

描述:在登陆的jsp页面中通过servlet动态获取验证码并将验证码存储在session中,采用javascrip对输入的验证码进行验证,通过分析了解第一次开启会话后,${sessionScope.checkCode}获取的servlet生成的验证码为空字符,刷新页面之后,该EL表达式获取的验证码为前一次生成的验证码。

解决方法:可以通过异步请求,将前端输入的验证码发送到后端,将输入的验证码与存储在session中的验证码进行比较

注意:为什么不能在前端进行验证码的验证,代码如下所示?

      * 在访问jsp资源之后,如果jsp页面中是通过sessionScope获取存入session中的验证码,那么在jsp资源发送到前端之后,该页面中的sessionScope.checkCode会转成具体的字符串发送到前端,所以当前端动态重新获取验证码之后,session中的验证码会刷新,但是前端中的sessionScope.checkCode转成的字符串并不会刷新;

   * 同时在获取jsp页面动态资源时,可能会在session中存入验证码之前运行${sessionScope.checkCode}EL表达式,此时${sessionScope.checkCode}的运行结果会为空字符串,然后会导致将空字符串发送到前端的问题。

  

猜你喜欢

转载自www.cnblogs.com/wypzpz/p/12452465.html
今日推荐