Educoder Java生成验证码 第3关:使用Kaptcha组件生成验证码
作者:互联网
任务描述
本关任务:使用Kaptcha
组件生成验证码,并校验验证码是否正确。
相关知识
之前两关我们已经了解了验证码的制作流程,不过我们在开发中一般不会去自己从零开始编写验证码,而是会使用到开源的组件,本关我们就来使用Kaptcha
来生成验证码,并且编写一个页面校验用户的验证码是否输入正确。
Kaptcha 组件的使用
先来看要实现的效果:
首先制作用户填写验证码的页面captchacode.jsp
<script type="text/javascript">
function reloadCode() {
var date = new Date().getTime();
document.getElementById("code").src = "<%=request.getContextPath() %>/imageKaptcha?d="+date;
}
</script>
<form action="checkCaptcha.jsp" method = "post">
<img alt="验证码" src="imageKaptcha" id = "code"><a href = "javascript:reloadCode();">看不清</a>
<input type = "text" name = "captcha">
<input type = "submit" value = "submit">
</form>
接着我们写一个检查验证码输入是否正确的类checkCaptchaServlet.java
request.setCha\fracterEncoding("utf-8");
// 获取Kaptcha jar包里面的KAPTCHA_SESSION_KEY
String trueCaptcha = (String)session.getAttribute(Constants.KAPTCHA_SESSION_KEY);
String inputCaptcha = request.getParameter("captcha");
if(trueCaptcha.toLowerCase().equals(inputCaptcha.toLowerCase())) {
out.write("验证码输入正确");
} else {
out.write("验证码输入错误");
}
然后配置好web.xml
就ok
了。下面我们来看看怎么配置web.xml
<servlet>
<servlet-name>myCaptcha</servlet-name>
<!-- jar中的 KaptchaServlet的路径-->
<servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
</servlet>
<!--配置kaptcha 校验验证码是否正确的 servlet-->
<servlet>
<servlet-name>CheckCaptcha</servlet-name>
<servlet-class>com.servlet.CheckCaptchaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myCaptcha</servlet-name>
<!-- 对于index.jsp中img的src -->
<url-pattern>/imageKaptcha</url-pattern>
</servlet-mapping>
<!--第三关:配置kaptcha 校验验证码的 servlet-->
<servlet-mapping>
<servlet-name>CheckCaptcha</servlet-name>
<url-pattern>/checkCaptcha</url-pattern>
</servlet-mapping>
做完上述步骤之后,运行项目,打开网页,即可查看验证码。
输入正确的验证码点击submit
:
经过上述步骤我们就使用Kaptcha
组件生成验证码了。
扩展:Kaptcha
还有很多其他的设置可以实现图片边框,边框颜色,中文验证码等操作,限于篇幅在这里就不在赘述。
标签:Educoder,String,Kaptcha,验证码,生成,组件,输入 来源: https://www.cnblogs.com/Tim161718/p/16329937.html