1、添加jar包 kaptcha-2.3.2.jar 到项目
2、在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、在表单中显示验证码并使用
4、在服务器获取谷歌生成的验证码和客户端发送过来的验证码相比较
String token = (String) req.getSession().getAttribute(KAPTCHA_SESSION_KEY);
req.getSession().removeAttribute(KAPTCHA_SESSION_KEY);
if (token != null && token.equalsIgnoreCase(code)) {
if (userService.existsUsername(username)) {
req.setAttribute("msg", "用户名已存在!");
req.getRequestDispatcher("regist.jsp").forward(req, resp);
} else {
userService.registerUser(new User(null, username, password, email));
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
5、点击验证码图片会切换验证码
为图片绑定单击事件 +new Date()为了跳过服务器的缓存,(因为为了速度,浏览器每次会将请求缓存到浏览器端)这样使得每次得请求不同
<script>
$(function () {
$("#code_img").click(function () {
this.src = "${basePath}Kaptcha.jpg?d="+new Date();
});
});
</script>
|