说明
首先,文章是参考刺猬的温驯的。非常感谢提供这么使用式例。
1.下载jar
maven形式,其他方式自行下载
<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.2</version>
</dependency>
2.在spring中配置been
这里注意一下,不是springMvc的配置文件中
<!-- kaptcha 验证码 -->
<bean 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">no</prop>
<prop key="kaptcha.border.color">105,179,90</prop>
<prop key="kaptcha.textproducer.font.color">red</prop>
<prop key="kaptcha.image.width">150</prop>
<prop key="kaptcha.textproducer.font.size">55</prop>
<prop key="kaptcha.image.height">55</prop>
<prop key="kaptcha.session.key">kaptchaCode</prop>
<prop key="kaptcha.textproducer.char.length">4</prop>
<prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑</prop>
</props>
</constructor-arg>
</bean>
</property>
</bean>
3.注入并使用
import java.awt.image.BufferedImage;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;
@Controller
public class KaptchaCon {
@Resource
Producer producer;
@RequestMapping("login/img")
public void handleRequest(HttpSession session, HttpServletResponse response)
throws Exception {
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 = producer.createText();
// store the text in the session
session.setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);
// create the image with the text
BufferedImage bi = producer.createImage(capText);
ServletOutputStream out = response.getOutputStream();
// write the data out
ImageIO.write(bi, "jpg", out);
try {
out.flush();
} finally {
out.close();
}
}
}
4.页面使用
<img
src="${request.contextPath}/login/img"
width="100%"
height="100%"
id="kaptchaImage" />
5.点击变化
$(function() {
$('#kaptchaImage').click(
function() {
$(this).attr(
'src',
'${request.contextPath}/login/img?'
+ new Date().getTime());
})
});
6.结束
关于配置问题,还是继续寻找资料看看吧!