700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 谷歌 kaptcha 图片验证码使用教程

谷歌 kaptcha 图片验证码使用教程

时间:2023-01-06 14:59:19

相关推荐

谷歌 kaptcha 图片验证码使用教程

谷歌验证码kapcha使用步骤如下:

导入谷歌验证码的jar包:kapcha-2.3.2.jar在web.xml中去配置用于生成验证码的Servlet程序

<servlet><servlet-name>KaptchaServlet</servlet-name><servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class></servlet><servlet-mapping><servlet-name>KaptchaServlet</servlet-name><url-pattern>/kaptcha.jpg</url-pattern></servlet-mapping>

3.在表单中使用img标签去显示验证码图片并使用它

<form action="http://localhost:8080/user/registServlet" method="get">用户名:<input type="text" name="username" > <br>验证码:<input type="text" style="width: 80px;" name="code"><img src="http://localhost:8080/user/kaptcha.jpg" alt="" style="width: 100px; height: 28px;"> <br><input type="submit" value="登录"></form>

4.在服务器获取谷歌生成的验证码和客户端发送过来的验证码比较使用

@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {// 获取 Session 中的验证码String token = (String) req.getSession().getAttribute(KAPTCHA_SESSION_KEY);// 删除 Session 中的验证码req.getSession().removeAttribute(KAPTCHA_SESSION_KEY);String code = req.getParameter("code");// 获取用户名String username = req.getParameter("username");if (token != null && token.equalsIgnoreCase(code)) {System.out.println("保存到数据库:" + username);resp.sendRedirect(req.getContextPath() + "/ok.jsp");} else {System.out.println("请不要重复提交表单");}}

点击验证码图片,切换验证码:给验证码的图片绑定单击事件:

$("#code_img").click(function () {// 在事件响应的 function 函数中有一个 this 对象。这个 this 对象,是当前正在响应事件的 dom 对象// src 属性表示验证码 img 标签的 图片路径。它可读,可写// alert(this.src);this.src = "${basePath}kaptcha.jpg?d=" + new Date();});

注意:浏览器为了让请求速度更快,就会每次请求的内容缓存到浏览器端(要么硬盘上,要么内存中),使得点击验证码图片,验证码不更新,所以,如何跳过浏览器中缓存,而发起请求给服务器获取新验证码,我们可以在请求时,添加一个参数,这里我们添加的是d=new Date(),这样,每次请求的参数都不同,就会跳过浏览器缓存。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。