开发介绍
给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;
})
这样就可以实现验证码功能了
没有回复内容