This article for everyone to share the Java Practical Verification Code implementation code, for your reference, the specific contents are as follows
1, Validcode
Package 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;
Import 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; public class VaLidcode extends HttpServlet {private static Configurablecaptchaservice cs = new Configurablecaptchaservice ();
private static Random Random = new Random ();
static {//Cs.setcolorfactory (New Singlecolorfactory (New 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] = Random.nextint (71);
else {C[fi] = Random.nextint (256);
} return new Color (C[0], c[1], c[2]);
}
});
randomwordfactory wf = new Randomwordfactory ();
Wf.setcharacters ("23456789abcdefghigkmnpqrstuvwxyzABCDEFGHIGKLMNPQRSTUVWXYZ");
Wf.setmaxlength (4);
Wf.setminlength (4);
Cs.setwordfactory (WF); public void doget (HttpServletRequest request, httpservletresponse response) throws Servletexception, ioexception {switch (Random.nextint (5)) {Case 0:cs.setfilterfactory (new Curvesripplefilterfactory (CS
. Getcolorfactory ());
Break
Case 1:cs.setfilterfactory (New Marbleripplefilterfactory ());
Break
Case 2:cs.setfilterfactory (New Doubleripplefilterfactory ());
Break
Case 3:cs.setfilterfactory (New Wobbleripplefilterfactory ());
Break
Case 4:cs.setfilterfactory (New Diffuseripplefilterfactory ());
Break
HttpSession session = Request.getsession (false);
if (session = NULL) {session = Request.getsession ();
} setresponseheaders (response);
String token = encoderhelper.getchallangeandwriteimage (cs, PNG, Response.getoutputstream ());
Session.setattribute ("Validcode", token);
System.out.println ("Current sessionid=" + session.getid () + ", Verification code =," + token); } protected void Setresponseheaders (HttpServletResponse response) {Response.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 response) throws Servletexception, ioexcept
Ion {}}
2.XML Code
<dependency>
<groupId>com.github.bingoohuang</groupId>
<artifactId>patchca< /artifactid>
<version>0.0.1</version>
</dependency>
<servlet>
< Servlet-name>validcode</servlet-name>
<servlet-class>validimg.validcode</servlet-class >
</servlet>
<servlet-mapping>
<servlet-name>ValidCode</servlet-name>
<url-pattern>/validImg.jpg</url-pattern>
</servlet-mapping>
The above is the entire content of this article, I hope to help you learn.