本文为大家分享了 Java 实用验证码的实现代码, 供大家参考, 具体内容如下
1、 ValidCode
แพ็คเกจ Validimg; นำเข้า Java.awt.Color; นำเข้า java.io.ioException; นำเข้า java.util.random; นำเข้า Javax.servlet.servletexception; นำเข้า Javax.servlet.http.httpservlet; นำเข้า Javax.servlet.http.https javax.servlet.http.htttservletResponse; นำเข้า Javax.servlet.http.httpsession; นำเข้า com.github.bingoohuang.patchca.color.colorfactory; com.github.bingoohuang.patchca.filter.predefined.curvesrippleFilterFactory; นำเข้า com.github.bingoohuang.patchca.filter.predefined.diffuserippleFilterFilterFlactory; com.github.bingoohuang.patchca.filter.predefined.marbleripplefilterfactory; นำเข้า com.github.bingoohuang.patchca.filter.predefined.wobbleripplefilterfilterfitory; com.github.bingoohuang.patchca.word.randomwordfactory; คลาสสาธารณะ ValidCode ขยาย httpservlet {ส่วนตัวคงที่ configurableCaptChaservice cs = ใหม่ configurableCaptChaservice (); สุ่มแบบคงที่ส่วนตัวแบบสุ่ม = ใหม่สุ่ม (); คงที่ {// cs.setColorFactory (ใหม่ SingleColorFactory (สีใหม่ (25, 60, 170))); cs.setColorFactory (ใหม่ colorfactory () {@Override สีสาธารณะ getColor (int x) {int [] c = ใหม่ int [3]; int i = random.nextint (c.length); สำหรับ (int fi = 0; fi <c.length; fi ++) {ถ้า (fi == i) Random.nextint (256); RandomwordFactory wf = new randomwordfactory (); Wf.SetchAracters ("23456789ABCDEFGHIGKMNPQRSTUVWXYZABCDEFGHIGKLMNPQRSTUVWXYZ"); wf.setMaxLength (4); wf.setMinLength (4); cs.setwordfactory (WF); } โมฆะสาธารณะ DOGET (คำขอ httpservletRequest, การตอบสนอง httpservletResponse) พ่น servletexception, ioexception {switch (random.nextint (5)) {กรณี 0: cs.setfilterfactory หยุดพัก; กรณีที่ 1: Cs.SetFilterFactory (ใหม่ MarblerippleFilterFactory ()); หยุดพัก; กรณีที่ 2: Cs.SetFilterFactory (ใหม่ doublerippleFilterFactory ()); หยุดพัก; กรณีที่ 3: Cs.SetFilterFactory (ใหม่ wobblerippleFilterFactory ()); หยุดพัก; กรณีที่ 4: Cs.SetFilterFactory (ใหม่ diffuserippleFilterFactory ()); หยุดพัก; } httpsession session = request.getSession (false); if (session == null) {session = request.getSession (); } setResponseHeaders (การตอบสนอง); String token = encoderHelper.getChallAngeEandWriteImage (CS, "PNG", Response.getOutputStream ()); Session.setAttribute ("ValidCode", โทเค็น); System.out.println ("当前的 sessionId =" + session.getId () + ", 验证码 =," + โทเค็น); } การป้องกันโมฆะ setResponseHeaders (การตอบสนอง httpservletResponse) {response.setContentType ("image/png"); Response.SetheAder ("Cache-Control", "No-Cache, No-store"); Response.Setheader ("Pragma", "No-cache"); นาน = system.currentTimeMillis (); Response.setDateHeader ("แก้ไขล่าสุด" เวลา); Response.SetDateHeader ("วันที่" เวลา); Response.setDateHeader ("หมดอายุ" เวลา); } โมฆะสาธารณะ dopost (คำขอ httpservletrequest, การตอบสนอง httpservletResponse) พ่น servletexception, ioexception {}} 2.xml 代码
<การพึ่งพา> <roupId> com.github.bingoohuang </groupId> <ratifactid> patchca </artifactid> <cersion> 0.0.1 </version> </การพึ่งพาอาศัย> <servlet> <servlet-name> <servlet-name> validCode </servlet-name> <url-pattern> /validimg.jpg </url-pattern> </servlet-mapping>
以上就是本文的全部内容, 希望对大家的学习有所帮助。