zoukankan      html  css  js  c++  java
  • Captcha 验证码Example

    maven依赖

    防止和spring中的servlet冲突

    <dependency>  
                <groupId>com.github.penggle</groupId>  
                <artifactId>kaptcha</artifactId>  
                <version>2.3.2</version>  
                
                <exclusions>  
                    <exclusion>  
                        <artifactId>javax.servlet-api</artifactId>  
                        <groupId>javax.servlet</groupId>  
                    </exclusion>  
                </exclusions> 
    
    </dependency>

    后端代码

    /**
         * 获取验证码图片
         * @param request
         * @param response
         * @return
         * @throws Exception
         */
        @RequestMapping("/captcha-image")  
        public ModelAndView handleRequest
            (HttpServletRequest request, HttpServletResponse response) {  
    
            ServletOutputStream out = null;
            try {
                response.setDateHeader("Expires", 0);
                response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");        
                response.addHeader("Cache-Control", "post-check=0, pre-check=0");             
                response.setHeader("Pragma", "no-cache");              
                response.setContentType("image/jpeg");              
                String capText = captchaProducer.createText();  
       
             //将验证码存入session “Constants.KAPTCHA_SESSION_KEY“是Key
                request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);
                // create the image with the text  
                //System.out.println(request.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY));
                BufferedImage bi = captchaProducer.createImage(capText);  
                out = response.getOutputStream();  
                // write the data out  
                ImageIO.write(bi, "jpg", out);
                out.flush();  
                logger.info("*****服务端验证码:*******" + capText);
            } catch (IOException e) {
                logger.info("*****服务端验证码异常*******" + e.getMessage());
                e.printStackTrace();
            }  
            finally {  
                   try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                    logger.info("*****关流失败*****"+e.getMessage());
                }
            }  
            return null;  
        } 

    前端

    直接访问映射验证码路径即可

    后台校验

    获取session中的验证码校验即可 Constants.KAPTCHA_SESSION_KEY为验证码的key

    欢迎指正,交流沟通,共同进步!

    欢迎指正,交流沟通,共同进步!对您有帮助的话点下推荐~~
  • 相关阅读:
    T4 assembly
    HtmlPrefixScopeExtensions
    PetaPoco修改
    类属性赋值
    Microsoft Office 2007的ContentType
    年月日-正则
    Unity shader学习之逐顶点漫反射光照模型
    Unity3d之表情动画--眨眼
    shader之法线变换
    Unity之fragment shader中如何获得视口空间中的坐标
  • 原文地址:https://www.cnblogs.com/gaoyawei/p/6723520.html
Copyright © 2011-2022 走看看