程序员的资源宝库

网站首页 > gitee 正文

java书写验证码

sanyeah 2024-04-12 17:37:59 gitee 4 ℃ 0 评论

java书写验证码

1.引用依赖 hutool
1.引用依赖 hutool
<!--hutool工具类依赖-->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.0.3</version>
</dependency>

2.hutool工具类图形验证码(Hutool-captcha)

hutool

package com.quan.crud.controller.user;

import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.LineCaptcha;
import cn.hutool.captcha.generator.RandomGenerator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

@Controller
@RequestMapping("/user")
public class UserController {

    Logger logger = LoggerFactory.getLogger(UserController.class);

    @RequestMapping("getLogin")
    public String getLogin(){
        return "/user/login";
    }

    @RequestMapping("/getvcode")
    @ResponseBody
    public Object getVcode(HttpServletRequest request){
        //获取session
        HttpSession session = request.getSession();
        // 自定义纯数字的验证码(随机4位数字,可重复)
        RandomGenerator randomGenerator = new RandomGenerator("0123456789", 4);
        LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(200, 100);
        lineCaptcha.setGenerator(randomGenerator);
        // 重新生成code
        lineCaptcha.createCode();
//        System.out.println("vcode为"+lineCaptcha.getCode());
        logger.info("vcode为"+lineCaptcha.getCode());
        session.setAttribute("vcode",lineCaptcha.getCode());
        return lineCaptcha.getImageBytes();
    }

}

3.html端(使用thymeleaf)
 <img th:src="@{/user/getvcode}" onclick="this.src=this.src+'?';" class="layadmin-user-login-codeimg" id="LAY-user-get-vercode">
onclick=``"this.src=this.src+'?'"

这是表示当前图片链接 在当前链接值的基础上添加了一个问号

譬如当前src="check.aspx",点击后就变成了"check.aspx?",继续点就会变成
"check.aspx?????"
......
这个问号是没有实际意义的,它唯一的作用是向IE表明: 图片链接发生了变化,图片需要刷新.

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表