本文为大家分享了 Java 实用验证码的实现代码 , 供大家参考 , 具体内容如下
1 、 ValidCode
Paket validImg; Import java.awt.color; import java.io.ioxception; import java.util.random; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; importieren javax.servlet.http.httpletrequest; javax.servlet.http.httpServletResponse; import javax.servlet.http.httpSession; import com.github.bingoohuang.patchca.color com.github.bingoohuang.patchca.filter.Predefined.curvesRippleFilterFactory; Import com.github.bingoohuang.patchca.filter.Predefined.DiffuseripleFilterFactory; 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 erweitert HttpServlet {private statische KonfigurationSconceCaptCaptChaService cs = new ConfigurableCaptchaService (); private static random random = new random (); static {// cs.setColorFactory (neue Singlecolorfactory (neue Farbe (25, 60, 170)); cs.setColorFactory (new ColorFactory () {@Override public color getColor (int x) {int [] c = new int [3]; int i = random.nextint (c.Length); für (int fi = 0; = random.Nextint (256); RandomWordFactory WF = New RandomWordFactory (); WF.Setcharacters ("23456789abcDefgHigkMnpqrstuvwxyzabcDefgHigklMnpqrstuvwxyz"); Wf.SetMaxLength (4); Wf.SetMinLength (4); Cs.SetwordFactory (WF); } public void dagget (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst ServletException aus, iOException {switch (random.nextint (5)) {case 0: cs.setfilterFactory (New CurvesRippleFilterFactory (cs .getColorFactory)); brechen; Fall 1: cs.setFilterFactory (New MarblerippleFilterFactory ()); brechen; Fall 2: Cs.SetFilterFactory (neuer DoublerpleFilterFactory ()); brechen; Fall 3: Cs.SetFilterFactory (New WobbleripleFilterFactory ()); brechen; Fall 4: cs.setFilterFactory (neuer DiffuserippleFilterFactory ()); brechen; } HttpSession Session = Request.GetSession (false); if (session == null) {session = request.getSession (); } setResponseHeaders (Antwort); String token = ccoderhelper.getChallaNDWriteImage (CS, "PNG", response.getOutputStream ()); Session.SetAttribute ("ValidCode", Token); System.out.println ("当前的 SessionID =" + session.getId () + ", 验证码 =," + token); } protected void setResponseHeaders (httpServletResponse -Antwort) {response.setContentType ("Image/png"); response.setheader ("cache-control", "no-cache, no-rot"); response.setheader ("pragma", "no-cache"); langzeit = System.currentTimemillis (); response.setDateHeader ("last-modifiziert", Zeit); response.setDateHeader ("Datum", Uhrzeit); response.setDateHeader ("läuft", Zeit); } public void dopost (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst ServletException aus, IOException {}} 2.xml 代码
<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>
以上就是本文的全部内容 , 希望对大家的学习有所帮助。 希望对大家的学习有所帮助。