本文为大家分享了java实用验证码的实现代码、供大家参考、具体内容如下
1、validcode
package valimimg; Import java.awt.color; Import java.io.ioexception; Import java.util.random; Import javax.servlet.servletexception; Import javax.servlet.httpservlet; Import javax.servlet.http.httpservletrequest; Import; javax.servlet.http.httpservletresponse; Import javax.servlet.http.httpsession; import com.githoohuang.patchca.color.colorfactory; Import com.github.bingoohuang.patchca.custom.custom.custom.custom.configurablecaptecapthaservice; com.github.bingoohuang.patchca.filter.predefined.CurvesRippleFilterFactory;import com.github.bingoohuang.patchca.filter.predefined.DiffuseRippleFilterFactory;import com.github.bingoohuang.patchca.filter.predefined.DoubleRippleFilterFactory;import com.github.bingoohuang.patchca.filter.predefined.marbleripplefilterfactory; import com.github.bingoohuang.patchca.filter.predefined.wobblerfilterfactory; Import com.github.bingoohuang.patchca.utils.encoder. com.github.bingoohuang.patchca.word.randomwordfactory; public class validcode extends httpservlet {private static configurablecaptchaservice cs = new configurablecaptchaservice(); private static random = new Random(); static {// cs.setColorFactory(new SingleColorFactory(new Color(25、60、170))); cs.setColorFactory(new Colurfactory(){@Override public color getColor(int x){int [] c = new int [3]; int i = random.nextint(c.length); for(int fi = 0; fi <c.length; fi ++){if(fi == i){c [fi] = random.nextint(71); andextint(256); randomwordfactory wf = new RandomWordFactory(); wf.setcharacters( "23456789ABCDEFGHIGKMNPQRSTUVWXYZABCDEFGHIGKLMNPQRSTUVWXYZ"); wf.setmaxlength(4); wf.setminlength(4); cs.SetWordFactory(WF); } public void doget(httpservletrequest request、httpservletresponse応答)servletexception、ioexception {switch(random.nextint(5)){case 0:cs.setfilterfactory(new curvesripplefilterfactory(cs .getcolorfactory());壊す;ケース1:Cs.SetFilterFactory(new MarblerIppleFilterFactory());壊す;ケース2:Cs.SetFilterFactory(new DoubleRippleFilterFactory());壊す;ケース3:cs.SetFilterFactory(new WobblerIppleFilterFactory());壊す;ケース4:cs.setfilterfactory(new diffuseripplefilterfactory());壊す; } httpsession session = request.getSession(false); if(session == null){session = request.getSession(); } setResponseHeaders(response); string token = encoderhelper.getChallangeandWriteImage(cs、 "png"、respons.getOutputStream()); session.setattribute( "validcode"、token); system.out.println( "当前的sessionid =" + session.getid() + "、验证码=、" + token); }保護されたvoid setResponseHeaders(httpservletResponse応答){respons.setContentType( "image/png"); Response.setheader( "Cache-Control"、 "No-Cache、No-Store"); Response.setheader( "Pragma"、 "no-cache"); long time = system.currenttimemillis(); Response.setDateHeader( "last-modified"、time); Response.setDateHeader( "date"、time); Response.setDateHeader( "expires"、time); } public void dopost(httpservletrequest request、httpservletresponse応答)throws servletexception、ioexception {}} 2.xml代码
<Dependency> groupId> com.githoohuang </groupid> <artifactid> patchca </artifactid> <version> 0.0.1 </version> </dependency> <servlet> <servlet-name> validcode </servet-name> <servet-class> validimg.validg.validgode <servlet-name> validcode </servlet-name> <url-pattern>/validimg.jpg </url-pattern> </servlet-mapping>
以上就是本文的全部内容、希望对大家的学习有所帮助。