zoukankan      html  css  js  c++  java
  • kaptcha验证码使用

    Kaptcha是一个非常实用的验证码生成工具,可以通过配置生成多样化的验证码。以图片的形式显示,从而无法进行复制粘贴。

    引入相关jar包

    在Servelt中配置kaptcha的Servlet

    <!-- kaptcha验证码配置 -->
      <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>black</param-value>
        </init-param>
        <init-param>
            <param-name>kaptcha.textproducer.char.space</param-name>
            <param-value>5</param-value>
        </init-param>
      </servlet>
       
      <servlet-mapping>
            <servlet-name>kaptcha</servlet-name>
            <url-pattern>/kaptcha.jpg</url-pattern>
     </servlet-mapping>

    kaptcha.border:是否显示边框。

    kaptcha.textproducer.font.color:字体颜色

    kaptcha.textproducer.char.space:字符间距

    更多的属性设置可以在com.google.code.kaptcha.Constants类中找到。其中包括:

    kaptcha.border.color:边框颜色

    kaptcha.border.thickness:边框宽度

    kaptcha.textproducer.char.length:产生字符的长度

    kaptcha.textproducer.font.size:产生字符的大小

    kaptcha.image.width:产生图片的宽度

    kaptcha.image.height:产生图片的高度,等

    编写一个显示验证码的页面,index.html

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <script type="text/javascript" src="statics/js/jquery-1.8.3.min.js"></script>
    <script type="text/javascript">
        //验证码刷新功能
        function refreshCaptcha() {
            //Math.floor();向下取整
            //jQuery效果,fadeIn() 方法使用淡入效果来显示被选元素,假如该元素是隐藏的。
            $('#vcode').hide().attr(
                'src',
                'kaptcha.jpg?'+ Math.floor(Math.random() * 100)).fadeIn();
        }
    </script>
    <body>
        <form action="kaptcha" method="post">
            <input type="text" name="kaptchaValidate">
            <img onclick="refreshCaptcha()" id="vcode" style="vertical-align: middle;" title="点击更换" alt="验证图片" src="kaptcha.jpg" height="40" width="85">
            <input type="submit" value="提交">
        </form>
    </body>
    </html>

    编写一个验证的Servelt以及web.xml的配置

    package cn.servlet;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import com.google.code.kaptcha.Constants;
     
    public class KaptchaServlet extends HttpServlet {
     
        private static final long serialVersionUID = -7642000788132875193L;
         
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            String validate = req.getParameter("kaptchaValidate");
            String validateCode = (String) req.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
             
            if(validate==null || validateCode == null){
                resp.sendRedirect("fail.html");
            }else if(!validateCode.equals(validate)){
                resp.sendRedirect("fail.html");
            }else{
                resp.sendRedirect("success.html");
            }
        }
    }
    <servlet>
        <servlet-name>validatServlet</servlet-name>
        <servlet-class>cn.servlet.KaptchaServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>validatServlet</servlet-name>
        <url-pattern>/kaptcha</url-pattern>
    </servlet-mapping>
  • 相关阅读:
    从.Net迁移到.Net Core时,需要注意的兼容性变更
    P/Invoke各种总结(五、在C#中使用指针类型)
    P/Invoke各种总结(四、平台调用时的数据类型对应)
    解决Visual Studio 2017/2019 "const char *"类型的值不能用于初始化"char *"类型的实体的问题
    .Net Framework、.Net Core和.Net Standard的区别
    C#代码分析工具Style Cop使用
    《代码不朽:编写可维护软件的10大要则(C#版)》读书笔记
    Visual C++中宽字节与多字节字符互相转换的方法
    浮动和定位
    关于如何设置图片大小和图片形状
  • 原文地址:https://www.cnblogs.com/chuanqi1995/p/11584219.html
Copyright © 2011-2022 走看看