• 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>
  • 相关阅读:
    用 SuperObject 解析淘宝上的 Json 数据
    JSON 之 SuperObject(17): 实例
    JSON 之 SuperObject(16): 实例
    JSON 之 SuperObject(15): 实例
    JSON 之 SuperObject(14): 从 XML 中解析
    JSON 之 SuperObject(13): 关于 SO 与 SA 函数
    JSON 之 SuperObject(12): TSuperEnumerator、TSuperAvlIterator、ObjectFindFirst...
    IO 流
    Servlet的创建和生命周期
    分页
  • 原文地址:https://www.cnblogs.com/chuanqi1995/p/11584219.html
Copyright © 2020-2023  润新知