本文为大家分享了java实用验证码的实现代码,供大家参考,具体内容如下
1、验证代码
软件包valyimg;导入java.awt.color; import java.io.io.io.ioexception; import java.util.random; import javax.servlet.servlet.servlet.servlet.servlet.servlet.servletexception; import javax.servlet.http.httppservlet; import javax.servax.servect; impt javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.github.bingoohuang.patchca.color.ColorFactory;import com.github.bingoohuang.patchca.custom.ConfigurableCaptchaService;import 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.WobbleRippleFilterFactory;import com.github.bingoohuang.patchca.utils.encoder.EncoderHelper;import com.github.bingoohuang.patchca.word.randomwordfactory;公共类ValterCode扩展了httpservlet {private static configurablecaptchaservice cs = new ConfigurableCaptChaservice();私有静态随机随机= new Random();静态{// cs.setColorFactory(new SinglecolorFactory(新颜色(25,60,170))); cs.setColorFactory(new ColorFactory(){@Override公共颜色getColor(int x){int [int [] c = new int [3]; int i = random.nextint(c.length); for(int fi = 0; fi = 0; fi <c.length; c.length; fi ++) = Random.nextint(256);}}返回新颜色(C [0],C [1],C [2] RandomWordFactory wf = new RandomWordFactory(); wf.setcharacters(“ 23456789abcdefghigkmnpqrstuvwxyzabcdefghigghigklmnpqrstuvwxyz”); wf.setmaxlength(4); wf.setminlength(4); cs.setWordFactory(WF); } public void doget(httpservletrequest请求,httpservletresponse响应)抛出ServletException,ioexception {switch(randy..nextint(5)){case 0:cs.setfilterfactory(cs.setfilterfactory(新的休息;案例1:cs.setFilterFactory(新的MarblerippleFilterFactory());休息;案例2:cs.setFilterFactory(新的DoubleerippleFilterFactory());休息;案例3:cs.setFilterFactory(new WobblerippleFilterFactory());休息;案例4:cs.setFilterFactory(新的diffuseripplefilterfactory());休息; } httpsession session = request.getSession(false); if(session == null){session = request.getSession(); } setResponseheaders(响应);字符串token = encoderHelper.getChallangeandWriteImage(CS,“ PNG”,Response.getOutputStream()); session.setAttribute(“ valtercode”,token); system.out.println(“当前的sessionid =” + session.getID() +“,验证码=,” + token); }受保护的void setResponseheaders(httpservletResponse响应){wendment.setContentType(“ image/png”);响应。响应。长时间= system.currentTimeMillis(); response.setDateHeader(“最后修饰”,时间); response.setDateHeader(“ date”,time); response.setDateHeader(“到期”,时间); } public void dopost(httpservletrequest请求,httpservletresponse响应)抛出ServletException,ioexception {}} 2.xml代码
<dependency> <groupId> com.github.bingoohuang </groupId> <ArtifactId> patchca </artifactid> </artifactid> <版本> 0.0.1 </distry> </deverency> <servlet> <servlet> <servlet-name> valtlet-name> valtlet-name> valtlet-> </servlet-name> <servlet-name> <servlet-class> <servlet-class> <servlet-class> <servlet-name> vallycode </servlet-name> <url-pattern>/validimg.jpg </url-pattern> </servlet-mapping>
以上就是本文的全部内容,希望对大家的学习有所帮助。,希望对大家的学习有所帮助。