Java 实用验证码的实现代码 , 供大家参考 , 具体内容如下
1 、 ValidCode
pacote validimg; importar java.awt.color; importar java.io.ioException; importar java.util.random; importar javax.servlet.servletexception; importar javax.servlet.http.httpSertlet; import javax.servlet.http.httlestlestlest; javax.servlet.http.httpServletResponse; importar javax.servlet.http.httpsession; importar com.github.bingoohuang.patchca.color.colorFactory; import com.github.burgohuang.patchca.custom.configur; com.github.bingoohuang.patchca.filter.predefined.curvesRippleFilterFactory; importar com.github.bingoohuang.patchca.filter.predefined.diflarsiplipfilterFactory; Import.github.bingoohuang.patchca.il com.github.bingoohuang.patchca.filter.predefined.MarblerlipLefilterFactory; importar com.github.bingoohuang.patchca.filter.predefined.wobblersiplfilterFactory; import com.github.bingoohuang.patchca.utilils.utriflfilter; com.github.bingoohuang.patchca.word.randomwordFactory; classe pública ValidCode estende HttPServlet {private estático ConfigurableCaptChaservice CS = new ConfigurableCaptCHaservice (); Randomal aleatório estático privado = novo aleatório (); estático {// cs.setColorFactory (novo singleColorFactory (nova cor (25, 60, 170))); cs.setColorFactory (new ColorFactory () {@Override public color getColor (int x) {int [] c = new int [3]; int i = random.nextInt (c.length); para (int fi = 0; fi <c.length; fi ++) {if (fi == i) {c [c [c [f [fi] = Random; Random.Nextint (256); RandomwordFactory wf = new RandomwordFactory (); wf.Setcharacters ("23456789ABCDEFGHIGKMNPQRSTUVWXYZABCDEFGHIGKLMNPQRSTUVWXYZ"); wf.setMaxLength (4); wf.setminLlength (4); cs.SetWordFactory (WF); } public void Doget (solicitação httpServletRequest, httpServletResponse Response) lança servletexception, ioexception {switch (random.nextInt (5)) {case 0: cs.setFilterFactory (new CurvesRipplyFilterFactory (cs .getColorFactory ()); quebrar; Caso 1: cs.setFilterFactory (New MarbleripplefilterFactory ()); quebrar; Caso 2: cs.setFilterFactory (novo DoubleripLipFilterFactory ()); quebrar; Caso 3: CS.SetFilterFactory (New WobbleriplipLFilterFactory ()); quebrar; Caso 4: cs.setFilterFactory (novo difuseriplipfilterFactory ()); quebrar; } HttpSession Session = request.getSession (false); if (session == null) {session = request.getSession (); } setResponseHeaders (resposta); String token = coderHelper.getChallangeAndWriteImage (CS, "png", Response.getOutTream ()); session.setAttribute ("validCode", token); System.out.println ("当前的 sessionId =" + session.getId () + ", 验证码 =," + token); } void protegido setResponseHeaders (httpServletResponse Response) {Response.SetContentType ("Image/png"); Response.setheader ("Cache-Control", "No-Cache, No Store"); Response.setheader ("Pragma", "sem cache"); longo tempo = system.currenttimemillis (); Response.setDateHeader ("Último modificado", tempo); Response.SetDateHeader ("Data", Hora); Response.setDateHeader ("Expira", tempo); } public void DoPost (solicitação httpServletRequest, httpServletResponse resposta) lança servletexception, ioexception {}} 2.xml 代码
<Depencency> <PuerpId> com.github.bingoohuang </groupiD> <TROTIFACTID> patchca </artifactId> <versão> 0.0.1 </versão> </dependency> <Vertlet> <Volls> ValidCode </Servlet> <Verlet-class> VidalLEG.-MAVELD> <Verlet-name> validcode </vletname> <url-tattern> /validimg.jpg </url-tattern> </vetlet-mapping>
以上就是本文的全部内容 , 希望对大家的学习有所帮助。