kaptcha 验证码技术
来源:互联网 发布:淘宝机票代理加盟 编辑:程序博客网 时间:2024/06/08 18:22
1、添加依赖:
<dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version></dependency>
2、配置web.xml
<servlet> <servlet-name>Kaptcha</servlet-name> <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Kaptcha</servlet-name> <url-pattern>/kaptcha.jpg</url-pattern> </servlet-mapping>
3、applicationContext:
<!-- 验证码 --><bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha"> <property name="config"> <bean class="com.google.code.kaptcha.util.Config"> <constructor-arg> <props> <prop key="kaptcha.border">yes</prop> <prop key="kaptcha.border.color">105,179,90</prop> <prop key="kaptcha.textproducer.font.color">blue</prop> <prop key="kaptcha.image.width">125</prop> <prop key="kaptcha.image.height">45</prop> <prop key="kaptcha.textproducer.font.size">36</prop> <prop key="kaptcha.session.key">code</prop> <prop key="kaptcha.textproducer.char.length">4</prop> <prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑</prop> </props> </constructor-arg> </bean> </property> </bean>
4、Controller
@Controller @RequestMapping("/code") public class CaptchaController { @Autowired private Producer captchaProducer = null; @RequestMapping(value = "/captcha-image") public ModelAndView getKaptchaImage(HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session = request.getSession(); 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.setAttribute(Constants.KAPTCHA_SESSION_KEY, capText); System.out.println("验证码: " + capText ); BufferedImage bi = captchaProducer.createImage(capText); ServletOutputStream out = response.getOutputStream(); ImageIO.write(bi, "jpg", out); try { out.flush(); } finally { out.close(); } return null; } @RequestMapping(value = "/captchaVerify",method=RequestMethod.POST) @ResponseBody public Map<String,Object> captchaVerify( String kaptchaCode,HttpServletRequest request, HttpServletResponse response) throws Exception { Map<String,Object> result=new HashMap<>(); HttpSession session = request.getSession(); String code = (String)session.getAttribute(Constants.KAPTCHA_SESSION_KEY); System.out.println("kaptchaCode:"+kaptchaCode+" ;code:"+code); if(StringUtils.isNotBlank(kaptchaCode)&&kaptchaCode.equalsIgnoreCase(code)){ result.put("isOK", "OK"); }else{ result.put("isOK", "WRONG"); } return result; } }
5.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ddd</title><script type="text/javascript" src="http://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script> <script type="text/javascript"> $(function(){//debugger;//生成验证码 $('#kaptchaImage').click(function () { $(this).hide().attr('src', 'code/captcha-image?' + Math.floor(Math.random()*100) ).fadeIn(); }); $("#commitBtn").click(function () {var kaptchaCode=$("#kaptchaCode").val().trim();console.log(JSON.stringify(kaptchaCode));if(kaptchaCode!=""){$.ajax({type:"POST",url:"code/captchaVerify",data:{"kaptchaCode":kaptchaCode},dataType: "json",success:function(data){console.log(JSON.stringify(data));if(data.isOK=="OK"){alert("验证码OK");}else{alert("验证码WRONG");}}});}});}); function changeCode() { //刷新 $('#kaptchaImage').hide().attr('src', 'code/captcha-image?' + Math.floor(Math.random()*100) ).fadeIn(); } </script> <body class="easyui-layout"><div class="form-group"> <label>验证码 </label> <input name="j_code" type="text" id="kaptchaCode" maxlength="4" class="form-control" /> <br/> <img src=" " id="kaptchaImage" style="margin-bottom: -3px"/> <a href="#" onclick="changeCode()">看不清?换一张</a> </div> <div><button id="commitBtn" >提交</button></div></body></html>
0 0
- kaptcha 验证码技术
- kaptcha验证码使用
- kaptcha验证码使用
- kaptcha验证码使用
- Java 验证码 kaptcha
- kaptcha验证码使用
- kaptcha中文验证码
- kaptcha验证码使用
- kaptcha验证码
- kaptcha验证码生成
- kaptcha验证码使用
- kaptcha验证码
- Kaptcha生成验证码
- kaptcha 验证码使用
- kaptcha验证码使用
- kaptcha验证码使用
- kaptcha验证码
- kaptcha 验证码组件
- HTML5 应用缓存,Application Cache
- 适配器模式
- ALERT! /dev/disk/by-uuid/xxxxxxxxx does not exist. Dropping to a shell!
- 如何设置状态栏的颜色使其与标题一致
- Hive-2.1.1的本地模式和远程模式部署
- kaptcha 验证码技术
- Fragment实现更新新闻列表功能(ListFragment)
- tst
- NSURLCredential
- Java编程思想学习-Java I/O
- Git学习一 “局域网篇”
- SUMO应用工具:DUAROUTER
- android 6.0升级 对应蓝牙扫描 和二维码扫描
- keras + lstm 情感分类