java web项目中添加验证码功能 - 技术教程论坛 - 综合分享 - 道言分享网

java web项目中添加验证码功能

20240513020613486-image

开发介绍

给javaweb项目中添加验证码功能,一般添加到注册登录和评论模块中,作用是可以避免字典攻击。

hutool工具类的集合:我们在写代码时候需要用到的一些常见的方法。我们以后开发功能的时候可以依
赖这个工具类集合,这样可以使我们的开发变得简单。该工具集里面就封装了生成验证码的功能。

开发工具:idea

开发环境:jdk8.0,tomcat8.0,Maven

开发技术:springMVC

实现步骤

1.引入依赖(pom.xml)

<dependency>
  <groupId>cn.hutool</groupId>
  <artifactId>hutool-all</artifactId>
  <version>4.6.8</version>
</dependency>

2.把验证码的图片响应给浏览器的图片(Controller)

@RequestMapping("/yanzheng")
    public void handleYzm(HttpServletResponse response, HttpSession session) throws IOException {
        //产生一张验证码图片
        LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(116, 40, 4, 60);
        String code=lineCaptcha.getCode();//获取验证码图片里面的真正验证码
        session.setAttribute("code",code);
        //把验证码图片放入到response里面交给浏览器
        ServletOutputStream outputStream=response.getOutputStream();
        lineCaptcha.write(outputStream);//把验证码图片放入到相应流里面
        response.flushBuffer();
    }

一般验证码图片看不清需要点击换一张超链接,界面不跳转,图片自动加载一张,所以控制器没有返回值,前端靠jquery来实现

html代码

<img class="yzm_img" id='imgVcode'
src="${pageContext.request.contextPath}/user/yanzheng.do" />
<input name="number" type="text" id="txtVerifyCode"
class="yzm_input"/>
<div class="text_left t1">
<p class="t1">
<span id="vcodeValidMsg">请输入图片中的四个字母。</span>
<span id="number.info" style="color:red"></span>
<a href="#" id="imageChange">看不清楚?换个图片</a>
</p>
</div>

jquery代码

//切换验证码
$("#imageChange").click(function () {
$("#imgVcode").prop("src",'${pageContext.request.contextPath }/user/yanzheng.do?a=Math.random()')
  })
$("form").submit(function () {
  if(checkEmail()&&checkName()&&checkPwd()){
    return true
    }  
return false;
})

这样就可以实现验证码功能了

请登录后发表评论

    没有回复内容