最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 服务器 > 系统运维 >
验证码的添加和实时刷新如何实现?
ENIDC发表于 2020-09-25 17:24 次浏览
登录注册页面添加验证码是一个非常常见的需求,网上也有非常成熟的解决方案,其实,要是自己自定义登录实现这个并不难,但是如果需要在自己登陆注册页面添加验证码并且实时刷新,还得稍费一点功夫,本文就和小伙伴来分享如何添加验证码和实时刷新的问题。

需要的工具 : kaptcha-2.3.2.jar idea2019.3
谷歌验证码 封装好的servlet类

首先导入jar包

导入完成之后 可以直接在web.xml进行配置

配置代码如下:

	
  • 1   <servlet>
  • 2   <servlet-name>KaptchaServlet</servlet-name>
  • 3   <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
  • 4    </servlet>
  • 5   <servlet-mapping>
  • 6   <servlet-name>KaptchaServlet</servlet-name>
  • 7    </servlet-mapping>
  • 8
  • 9

如果添加完成之后 重新部署 直接访问之后 就会得到一个验证码图片 效果如图;

问题来了?

得到图片之后 怎么获取 里面的字符

该工具会在登录后台 或者 注册后台 设置一个session 通过 id可以取出 value 值


      

    
     
  • 1    // 获取Session中的验证码
  • 2    String token = (String) req.getSession().getAttribute(KAPTCHA_SESSION_KEY);
  • 3    // 删除 Session中的验证码
  • 4    req.getSession().removeAttribute(KAPTCHA_SESSION_KEY);
  • 5

其中 KAPTCHA_SESSION_KEY是常量 固定ID

其中原理是 当我们请求服务器之后 通过session 得到值 之后 立马删除session 为下一次请求做准备

这样就防止多次请求

之后 获取 发送的 验证码 进行 比对 正确之后 进行下一步操作 不正确 返回页面 回显错误信息


  
  • 1   String code = req.getParameter("code");
  • 2    //检查验证码有否有问题
  • 3         if (token != null && token.equalsIgnoreCase(code)) {
  • 4   }else{
  • 5
  • 6}

如何在jsp页面中显示验证码图片呢

利用 img src 属性

                
  • 1    <img id="img_check" src="kaptcha.jpg" width="80px" height="40px" >

其中 src中放的 正是请求servlet的地址 便可获取到图片


		<url-pattern>/kaptcha.jpg</url-pattern>
标签:验证码平台
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐