验证码生成工具

本验证码生成采用的是Google提供的第三方KAPTCHA服务,使用及其方便,使用步骤分为以下三步:
1.添加依赖 在pom.xml文件中添加

 <dependency>
        <groupId>com.google.code.kaptcha</groupId>
        <artifactId>kaptcha</artifactId>
        <version>2.3</version>
    </dependency>

2.在web.xml中配置servlet,可根据注释酌情配置

    <servlet>
    <!-- 生成图片的Servlet -->
    <servlet-name>Kaptcha</servlet-name>
    <servlet-class>com.google.code.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.textproducer.font.color</param-name>
        <param-value>red</param-value>
    </init-param>
    <!-- 图片宽度 -->
    <init-param>
        <param-name>kaptcha.image.width</param-name>
        <param-value>135</param-value>
    </init-param>
    <!-- 使用哪些字符生成验证码 -->
    <init-param>
        <param-name>kaptcha.textproducer.char.string</param-name>
        <param-value>ACDEFHKPRSTWX345679</param-value>
    </init-param>
    <!-- 图片高度 -->
    <init-param>
        <param-name>kaptcha.image.height</param-name>
        <param-value>50</param-value>
    </init-param>
    <!-- 字体大小 -->
    <init-param>
        <param-name>kaptcha.textproducer.font.size</param-name>
        <param-value>43</param-value>
    </init-param>
    <!-- 干扰线的颜色 -->
    <init-param>
        <param-name>kaptcha.noise.color</param-name>
        <param-value>black</param-value>
    </init-param>
    <!-- 字符个数 -->
    <init-param>
        <param-name>kaptcha.textproducer.char.length</param-name>
        <param-value>4</param-value>
    </init-param>
    <!-- 使用哪些字体 -->
    <init-param>
        <param-name>kaptcha.textproducer.font.names</param-name>
        <param-value>Arial</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>Kaptcha</servlet-name>
    <url-pattern>/Kaptcha</url-pattern>
</servlet-mapping>

3.为了方便使用,此处已经将判断验证码写成了方法。前端传进来的参数验证码key必须为verifyCodeActual

public static boolean checkVerifyCode(HttpServletRequest request) {
    String verifyCodeExpected = (String) request.getSession().getAttribute(
            com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
    String verifyCodeActual = request.getParameter("verifyCodeActual");
    if (verifyCodeActual == null
            || !verifyCodeActual.equalsIgnoreCase(verifyCodeExpected)) {
        return false;
    }
    return true;
}

4.前端部分代码如下 (仍需自定义填写验证码的输入框,并将其参数以verifyCodeActual为key传给后端:

<img sr="/Kaptcha"  /> <!-- src 为web.xml配置的拦截路径 -->

function changeVerifyCode(img) {
img.src = "../Kaptcha?" + Math.floor(Math.random() * 100);
}

0     1    2     3    4     5    6     7    8     9    10     11    12     13    14     15    16     17    
18     19    20     21    22     23    24     25    26     27    28     29    30     31    32     33    34     35    
36     37    38     39    40     41    42     43    44     45    

<center>Coding Blog     Github Blog </center>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容