试用springmvc框架,maven管理工具
1.添加依赖
1 <dependency> 2 <groupId>com.github.axet</groupId> 3 <artifactId>kaptcha</artifactId> 4 <version>0.0.9</version> 5 </dependency>
2.spring 配置文件 applicationContext.xml
1 <!-- Kaptcha验证码生成器 --> 2 <bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha"> 3 <property name="config"> 4 <bean class="com.google.code.kaptcha.util.Config"> 5 <constructor-arg> 6 <props> 7 <prop key="kaptcha.border">yes</prop> 8 <prop key="kaptcha.border.color">105,179,90</prop> 9 <prop key="kaptcha.textproducer.font.color">blue</prop> 10 <prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.ShadowGimpy</prop> 11 <prop key="kaptcha.image.width">150</prop> 12 <prop key="kaptcha.image.height">45</prop> 13 <prop key="kaptcha.textproducer.font.size">45</prop> 14 <prop key="kaptcha.session.key">code</prop> 15 <prop key="kaptcha.textproducer.char.length">4</prop> 16 <prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑</prop> 17 </props> 18 </constructor-arg> 19 </bean> 20 </property> 21 </bean>
3.生成图片的controller
1 package com.sdcf.controller; 2 3 import com.google.code.kaptcha.Constants; 4 import com.google.code.kaptcha.Producer; 5 import org.slf4j.Logger; 6 import org.slf4j.LoggerFactory; 7 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.stereotype.Controller; 9 import org.springframework.web.bind.annotation.RequestMapping; 10 11 import javax.imageio.ImageIO; 12 import javax.servlet.ServletOutputStream; 13 import javax.servlet.http.HttpServletRequest; 14 import javax.servlet.http.HttpServletResponse; 15 import javax.servlet.http.HttpSession; 16 import java.awt.image.BufferedImage; 17 18 19 @Controller 20 @RequestMapping("/captcha") 21 public class CaptchaController { 22 private static Logger logger = LoggerFactory.getLogger(CaptchaController.class); 23 24 @Autowired 25 private Producer producer; 26 27 @RequestMapping("/kaptcha.jpg") 28 public void kaptcha(HttpServletRequest req, 29 HttpServletResponse rsp) throws Exception { 30 HttpSession session = req.getSession(); 31 32 rsp.setDateHeader("Expires", 0); 33 rsp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); 34 rsp.addHeader("Cache-Control", "post-check=0, pre-check=0"); 35 rsp.setHeader("Pragma", "no-cache"); 36 rsp.setContentType("image/jpeg"); 37 38 String capText = producer.createText(); 39 session.setAttribute(Constants.KAPTCHA_SESSION_KEY, capText); 40 logger.info("验证码:"+session.getAttribute(Constants.KAPTCHA_SESSION_KEY)); 41 BufferedImage image = producer.createImage(capText); 42 ServletOutputStream out = rsp.getOutputStream(); 43 ImageIO.write(image, "jpg", out); 44 try { 45 out.flush(); 46 } finally { 47 out.close(); 48 } 49 } 50 }
4.页面调用
1 <img src="${basePath}/captcha/kaptcha.jpg" > <a href="javascript:;">看不清,换一张</a>
浙公网安备 33010602011771号