知识大全 使用kaptcha生成验证码
Posted 字符
篇首语:仓廪实则知礼节,衣食足则知荣辱。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用kaptcha生成验证码相关的知识,希望对你有一定的参考价值。
kaptcha是一个简单好用的验证码生成工具 通过配置 可以自己定义验证码大小 颜色 显示的字符等等 下载kaptcha 新建一个Web项目 并将下载压缩包中的kaptcha jar放在项目的WEB INF/lib目录下 配置web xml文件 <?xml version= encoding= UTF ?><web app version= xmlns= xmlns:xsi= instance xsi:schemaLocation= app_ _ xsd > <display name></display name> <! kaptcha验证码配置 > <servlet> <! 生成图片的Servlet > <servlet name>Kaptcha</servlet name> <servlet class>de kaptcha servlet KaptchaServlet</servlet class> <! 是否有边框 > <init param> <param name>kaptcha border</param name> <param value>no</param value> </init param> <! 字体颜色 > <init param> <param name>kaptcha tlor</param name> <param value>red</param value> </init param> <! 图片宽度 > <init param> <param name>kaptcha image width</param name> <param value> </param value> </init param> <! 使用哪些字符生成验证码 > <init param> <param name>kaptcha textproducer char string</param name> <param value>ACDEFHKPRSX </param value> </init param> <! 图片高度 > <init param> <param name>kaptcha image height</param name> <param value> </param value> </init param> <! 字体大小 > <init param> <param name>kaptcha textproducer font size</param name> <param value> </param value> </init param> <! 干扰线的颜色 > <init param> <param name>lor</param name> <param value>black</param value> </init param> <! 字符个数 > <init param> <param name>kaptcha textproducer char length</param name> <param value> </param value> </init param> <! 使用哪些字体 > <init param> <param name>kaptcha textproducer font names</param name> <param value>Arial</param value> </init param> </servlet> <! 映射的url > <servlet mapping> <servlet name>Kaptcha</servlet name> <url pattern>/Kaptcha jpg</url pattern> </servlet mapping> <wele file list> <wele file>index jsp</wele file> </wele file list></web app> 显示验证码的页面index jsp <%@ page language= java contentType= text/; charset=UTF pageEncoding= UTF %><!DOCTYPE PUBLIC //W C//DTD HTML Transitional//EN ><><head><meta equiv= Content Type content= text/; charset=UTF ><title>验证码</title><script type= text/javascript > //点击切换验证码 function changeVerifyCode(img) img src = Kaptcha jpg? +Math floor(Math random()* ) </script></head><body> <p> <form action= result jsp > <table> <tr> <td> </td> <td> <img src= Kaptcha jpg onclick= changeVerifyCode(this) style= cursor: pointer; > </td> </tr> <tr> <td> 请输入验证码 </td> <td> <input type= text name= verifyCode > </td> </tr> <tr> <td> </td> <td> <input type= submit value= 提交 > </td> </tr> </table> </form> </body></> 运行项目 显示结果
最后加上异步验证 看输入的验证码是否正确 )增加一个验证的Servlet package cn luxh servlet;import java io IOException;import java io PrintWriter;import javax servlet ServletException;import javax servlet HttpServlet;import javax servlet HttpServletRequest;import javax servlet HttpServletResponse;public class VerifyServlet extends HttpServlet public void doGet(HttpServletRequest request HttpServletResponse response) throws ServletException IOException response setContentType( text/;charaset=utf ) response setHeader( pragma no cache ) response setHeader( cache control no cache ) PrintWriter out = null; try //响应数据 String resultData; //获取传过来的验证码 String verifyCode = request getParameter( verifyCode ) System out println( verifyCode +verifyCode) if(verifyCode== ) resultData = N ; else //获取kaptcha生成存放在session中的验证码 String kaptchaValue = (String) request getSession() getAttribute(de kaptcha Constants KAPTCHA_SESSION_KEY) //比较输入的验证码和实际生成的验证码是否相同 if(kaptchaValue = null || kaptchaValue = ||!verifyCode equalsIgnoreCase(kaptchaValue)) resultData = N ; else resultData = Y ; out = response getWriter() out write(resultData) out flush() catch(Exception e) e printStackTrace() finally if(out != null) out close() )在web xml中添加这个Servlet的配置 <! 检查验证码是否输入正确 > <servlet> <servlet name>VerifyServlet</servlet name> <servlet class>cn luxh servlet VerifyServlet</servlet class> </servlet> <servlet mapping> <servlet name>VerifyServlet</servlet name> <url pattern>/VerifyServlet</url pattern> </servlet mapping> )页面index jsp <%@ page language= java contentType= text/; charset=UTF pageEncoding= UTF %><!DOCTYPE PUBLIC //W C//DTD HTML Transitional//EN ><><head><meta equiv= Content Type content= text/; charset=UTF ><title>验证码</title><script type= text/javascript src= $pagntextPath/jquery min js ></script><script type= text/javascript > //点击切换验证码 function changeVerifyCode(img) img src = Kaptcha jpg? +Math floor(Math random()* ) //提交 function doSubmit() var verifyCodeValue = $( #verifyCode ) val() if(verifyCodeValue replace(/\\s/g ) == ) alert( 请输入验证码 ) else //提交前先异步检查验证码是否输入正确 var = $pagntextPath/VerifyServlet?verifyCode= +verifyCodeValue; $ ajax( type: GET url: success:function(returnData) if(returnData!= Y ) alert( 请输入正确的验证码! ) else //验证码正确 进行提交操作 //…… error:function(e) alert(e) ) </script></head><body> <p> <form action= result jsp > <table> <tr> <td> </td> <td> <img src= Kaptcha jpg onclick= changeVerifyCode(this) style= cursor: pointer; > </td> </tr> <tr> <td> 请输入验证码 </td> <td> <input type= text name= verifyCode id= verifyCode > </td> </tr> <tr> <td> </td> <td> <input type= button value= 提交 onclick= doSubmit() > </td> </tr> </table> </form> </body></> )运行结果
cha138/Article/program/Java/hx/201311/27179相关参考