本文为大家分享了 java 实用验证码的实现代码 , 供大家参考 具体内容如下
1 、 Vitcode
paquete Validimg; import java.awt.color; import java.io.ioException; import java.util.random; import javax.servlet.servletException; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; importación; javax.servlet.http.httpservletResponse; import javax.servlet.http.httpsession; import com.github.bingoohuang.patchca.filter.predefined.curvesrippleFilterFactory; import com.github.bingoohuang.patchca.filter.predefined.diffuserippleFilterFactory; import com.github.bingoohuang.patchca.filter.pedefined.doublebleripplefilterfactory; import.github.bingoohuang.patchca.filter.pedefined.doubleripplefilterfilterfactory; import.github.bingoohuang.patchca.filter.pedefined.doubleripplefilterfilterFactory; com.github.bingoohuang.patchca.filter.predefined.MarbleripleippleFilterfactory; import com.github.bingoohuang.patchca.filter.predefined.wobblerippleFilterFactory; import com.github.bingoohuang.patchca.utils.encoder.encoderhelper; import com.github.bingoohuang.patchca.word.randomwordFactory; Public Class Validcode extiende httpservlet {private static configurureBlecaptchAservice cs = new ConfiguableCaptchAservice (); privado static aleatorio = new Random (); static {// cs.SetColorFactory (new SingleColorFactory (nuevo color (25, 60, 170))); cs.SetColorFactory (new ColorFactory () {@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] = aleator.nextint (71);} Random.NextInt (256); RandomWordFactory WF = new RandomWordFactory (); wf.setcharacters ("23456789ABCDefghigkmnpqrstuvwxyzabcdefghigklmnpqrstuvwxyz"); WF.SetMaxLength (4); wf.setminlength (4); cs.SetWordFactory (WF); } public void doget (httpservletRequest solicitud, httpservletResponse respuesta) arroja servletException, ioexception {switch (random.nextint (5)) {case 0: csssetFilterFactory (nueva curvesRippleFilterFactory (cs .getColorFactory ())); romper; Caso 1: Cs.SetFilterFactory (nuevo MarblerippleFilterFactory ()); romper; Caso 2: cs.SetFilterFactory (new DoublePleippleFilterFactory ()); romper; Caso 3: Cs.SetFilterFactory (new WobblerippleFilterFactory ()); romper; Caso 4: Cs.SetFilterFactory (nuevo DiffuserippleFilterFactory ()); romper; } Httpsession session = request.getSession (falso); if (session == null) {session = request.getSession (); } setResponseHeaders (respuesta); String token = encoderHelper.getChallangeEndWriteImage (cs, "png", respuesta.getOutputStream ()); session.SetAttribute ("ValidCode", token); System.out.println ("当前的 sessionId =" + session.getID () + ", 验证码 =," + token); } protegido void setResponseHeaders (respuesta httpservletResponse) {Response.SetContentType ("Image/Png"); Respuesta.Setheader ("Cache-Control", "No-cache, no-store"); respuesta.setheader ("Pragma", "No-Cache"); mucho tiempo = system.currentTimemillis (); respuesta.setDateHeader ("Último modificado", tiempo); respuesta.setDateHeader ("fecha", hora); Respuesta.SetDateHeader ("expiras", tiempo); } public void dopost (solicitud httpservletrequest, respuesta httpservletreSponse) lanza ServletException, ioexception {}} 2.xml 代码
<Spendency> <MoupRid> com.github.bingoohuang </groupid> <artifactid> patchca </artifactid> <versión> 0.0.1 </versión> </pendency> <servlet> <ervlet-name> validcode </servlet-name> <ervlet-class> validimg.validcode </servlet-class> </servlet> <servlet-mapping> <Servlet-Name> ValidCode </Servlet-Name> <URL-Pattern> /Validimg.jpg </url-Pattern> </servlet-mapping>
以上就是本文的全部内容 希望对大家的学习有所帮助。 希望对大家的学习有所帮助。