Spring MVC 中使用 kaptcha 验证码(2)

import java.awt.image.BufferedImage; 
import javax.imageio.ImageIO; 
import javax.servlet.ServletOutputStream; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.servlet.ModelAndView; 
import com.google.code.kaptcha.Constants; 
import com.google.code.kaptcha.Producer; 
 
@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(); 
        String code = (String)session.getAttribute(Constants.KAPTCHA_SESSION_KEY); 
        System.out.println("验证码: " + code ); 
         
        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); 
       
        BufferedImage bi = captchaProducer.createImage(capText); 
        ServletOutputStream out = response.getOutputStream(); 
        ImageIO.write(bi, "jpg", out); 
        try { 
            out.flush(); 
        } finally { 
            out.close(); 
        } 
        return null; 
    } 
}

3、kaptcha可配置项

kaptcha.border  是否有边框  默认为true  我们可以自己设置yes,no 
kaptcha.border.color  边框颜色  默认为Color.BLACK 
kaptcha.border.thickness  边框粗细度  默认为1 
kaptcha.producer.impl  验证码生成器  默认为DefaultKaptcha 
kaptcha.textproducer.impl  验证码文本生成器  默认为DefaultTextCreator 
kaptcha.textproducer.char.string  验证码文本字符内容范围  默认为abcde2345678gfynmnpwx 
kaptcha.textproducer.char.length  验证码文本字符长度  默认为5 
kaptcha.textproducer.font.names    验证码文本字体样式  默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize) 
kaptcha.textproducer.font.size  验证码文本字符大小  默认为40 
kaptcha.textproducer.font.color  验证码文本字符颜色  默认为Color.BLACK 
kaptcha.textproducer.char.space  验证码文本字符间距  默认为2 
kaptcha.noise.impl    验证码噪点生成对象  默认为DefaultNoise 
kaptcha.noise.color  验证码噪点颜色  默认为Color.BLACK 
kaptcha.obscurificator.impl  验证码样式引擎  默认为WaterRipple 
kaptcha.word.impl  验证码文本字符渲染  默认为DefaultWordRenderer 
kaptcha.background.impl  验证码背景生成器  默认为DefaultBackground 
kaptcha.background.clear.from  验证码背景颜色渐进  默认为Color.LIGHT_GRAY 
kaptcha.background.clear.to  验证码背景颜色渐进  默认为Color.WHITE 
kaptcha.image.width  验证码图片宽度  默认为200 
kaptcha.image.height  验证码图片高度  默认为50

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b0e84ec552a5b81addcd354d65310730.html