- 为什么需要验证码?
- kaptcha如何使用:
-
添加jar
-
在web.xml文件中注册KaptchaServlet,并设置验证码图片的相关属性
-
<servlet><servlet-name>KaptchaServlet</servlet-name><servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
<!-- <init-param>-->
<!-- <param-name></param-name>-->
<!-- <param-value></param-value>-->
<!-- </init-param>--></servlet><servlet-mapping><servlet-name>KaptchaServlet</servlet-name><url-pattern>/kaptcha.jpg</url-pattern></servlet-mapping>
- 在html页面上编写一个img标签,然后设置src等于KaptchaServlet对应的url-pattern
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><img src="kaptcha.jpg"/>
</body>
</html>
-
kaptcha验证码图片的各个属性在常量接口:Constants中
-
KaptchaServlet在生成验证码图片时,会同时将验证码信息保存到session中
@WebServlet("/kaptcha01")
public class KaptchaServletDemo01 extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {HttpSession session = req.getSession();Object key = session.getAttribute("KAPTCHA_SESSION_KEY");Object date = session.getAttribute("KAPTCHA_SESSION_DATE");System.out.println(key);System.out.println(date);}
}
因此,我们在注册请求时,首先将用户文本框中输入的验证码值和session中保存的值进行比较,相等,则进行注册