以前没看到过Kaptcha这种东东, 更别说拿来用了,虽然也不知道怎么样,在看完Maven教程的时候,有提到kaptcha这种生成验证码的第三方库,于是好奇会是神马样子,在加之Maven,小白的我拿来先用用吧 。。。。
不过可怜的我 ,刚接触Maven 甚至是第一次接触Kaptcha,连Maven中的那些文件, 包结构都跟以前看到的不一样 ,然后有点各种懵 。。。。懵。。。懵。。。 ( 附上源码 : )
先看看有点乱的包结构:
2. pom.xml:
4.0.0 com.yc.ssm SSM_001 war 0.0.1-SNAPSHOT SSM_001 Maven Webapp http://maven.apache.org junit junit 4.12 test log4j log4j 1.2.17 org.apache.logging.log4j log4j-core 2.1 org.mybatis mybatis 3.3.0 com.oracle oracle-driver 11g org.apache.struts struts2-core 2.5-BETA2 com.google.code kaptcha 2.3.2 org.apache.struts struts2-json-plugin 2.3.24 SSM_001
然后拿到了一堆包:
3.之前就写过,想使用kaptcha生成验证码,只需要在web.xml中配置 :
来看看web.xml:
struts2 org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter struts2 /* Kaptcha com.google.code.kaptcha.servlet.KaptchaServlet 图片边框,合法值:yes , no kaptcha.border yes 边框颜色,合法值: r,g,b (and optional alpha) 或者 white,black,blue. kaptcha.border.color black 边框厚度,合法值:>0 kaptcha.border.thickness 1 图片宽 160 kaptcha.image.width 180 图片高 32 kaptcha.image.height 50 图片实现类 kaptcha.producer.impl com.google.code.kaptcha.impl.DefaultKaptcha 文本实现类 kaptcha.textproducer.impl com.google.code.kaptcha.text.impl.DefaultTextCreator 文本集合,验证码值从此集合中获取 kaptcha.textproducer.char.string 1234567890abcdefghijklmnopqrstuvwxyz 验证码长度 5 kaptcha.textproducer.char.length 4 字体 Arial, Courier kaptcha.textproducer.font.names Arial, Courier 字体大小 40px. kaptcha.textproducer.font.size 32 字体颜色,合法值: r,g,b 或者 white,black,blue. kaptcha.textproducer.font.color black 文字间隔 2 kaptcha.textproducer.char.space 2 干扰实现类 kaptcha.noise.impl com.google.code.kaptcha.impl.NoNoise 干扰颜色,合法值: r,g,b 或者 white,black,blue. kaptcha.noise.color black 图片样式: 水纹com.google.code.kaptcha.impl.WaterRipple 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy 阴影com.google.code.kaptcha.impl.ShadowGimpy kaptcha.obscurificator.impl com.google.code.kaptcha.impl.WaterRipple 背景实现类 kaptcha.background.impl com.google.code.kaptcha.impl.DefaultBackground 背景颜色渐变,开始颜色 kaptcha.background.clear.from green 背景颜色渐变,结束颜色 kaptcha.background.clear.to white 文字渲染器 kaptcha.word.impl com.google.code.kaptcha.text.impl.DefaultWordRenderer session中存放验证码的key键 kaptcha.session.key KAPTCHA_SESSION_KEY The date the kaptcha is generated is put into the HttpSession. This is the key value for that item in the session. kaptcha.session.date KAPTCHA_SESSION_DATE Kaptcha /randomcode.jpg index.jsp
需注意几处地方:
4. 再来看看 struts.xml 中内容:
jsonModel text/html
5. UserLogin.java:
public class UserLogin implements Serializable { private static final long serialVersionUID = 1L; private String uname; private String pwd; private String checkCode; //input code private String ackCode; // img code public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getCheckCode() { return checkCode; } public void setCheckCode(String checkCode) { this.checkCode = checkCode; } public String getAckCode() { return ackCode; } public void setAckCode(String ackCode) { this.ackCode = ackCode; } @Override public String toString() { return "UserLogin [uname=" + uname + ", pwd=" + pwd + ", checkCode=" + checkCode + ", ackCode=" + ackCode + "]"; } public UserLogin(String uname, String pwd, String checkCode, String ackCode) { super(); this.uname = uname; this.pwd = pwd; this.checkCode = checkCode; this.ackCode = ackCode; } public UserLogin() { super(); }}
接下一篇: 《 Kaptcha的简单小例(二)》