本文为大家分享了 Java 实用验证码的实现代码 , 供大家参考 , 具体内容如下
1 、 kode valid
paket validimg; Impor java.awt.color; impor java.io.ioException; impor java.util.random; impor javax.servlet.servletException; import javax.servlet.httpservlet; impor javax.servlet.http.httpservlet; javax.servlet.http.httpservletResponse; import javax.servlet.http.httpsession; import com.github.bingoohuang.patchca.color.colorfactory; import com.github.bithub.bingoohuang.patchca.customom com.github.bingoohuang.patchca.filter.predefined.curvesripplefilterfactory; impor com.github.bingoohuang.patchca.filter.predefined.diffuseripplefilterfactory; com.github.bingooHuang.patchcryplefilterfactory; com.github.bingooHuang.patchatcy com.github.bingoohuang.patchca.filter.predefined.marbleripplefilterfactory; import com.github.bingoohuang.patchca.filter.predefined.wobbleripplefilterfactory; com.github.bithoHuang.patchca.util com.github.bingoohuang.patchca.word.randomwordfactory; Public Class ValidCode memperluas httpservlet {private static configurableCaptChaservice cs = new configurableCaptChaservice (); private static acak acak = acak baru (); static {// cs.setColorFactory (singlecolorfactory baru (warna baru (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. C.next; fi) {ife (fi ==) {c.next; = Random.NextInt (256); RandomWordFactory wf = new randomWordFactory (); wf.setcharacters ("23456789ABCDEFGHIGKMNPQRSTUVWXYZABCDEFGHIGKLMNPQRSUVWXYZ"); wf.setmaxlength (4); wf.setminlength (4); cs.setWordFactory (WF); } public void doGet (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {switch (random.nextint (5)) {case 0: cs.setfilterfactory (curvesripplefilterfactory (cs .getfilorfactory (curvesripplefilterfactory (cs .getfiloror merusak; Kasus 1: cs.setFilterfactory (Marbleripplefilterfactory baru ()); merusak; Kasus 2: cs.setFilterFactory (DoublerIppleFilterFactory baru ()); merusak; Kasus 3: cs.setFilterFactory (wobbllipplefilterfactory baru ()); merusak; Kasus 4: cs.setFilterfactory (diffuseripplefilterfactory baru ()); merusak; } Httpsession session = request.getSession (false); if (session == null) {session = request.getSession (); } setResponseaders (respons); String token = encoderhelper.getchallangeandwriteImage (cs, "png", response.getoutputStream ()); session.setAttribute ("validCode", token); System.out.println ("当前的 sessionId =" + session.getId () + ", 验证码 =," + token); } protected void setResponseaders (httpservletResponse response) {response.setContentType ("Image/png"); response.setheader ("cache-control", "no-cache, no-store"); response.setheader ("pragma", "no-cache"); lama = system.currentTimemillis (); response.setDateheader ("terakhir dimodifikasi", waktu); response.setDateheader ("tanggal", waktu); response.setDateheader ("kedaluwarsa", waktu); } public void dopost (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {}} 2.xml 代码
<dependency> <GroupId> com.github.bingoohuang </groupId> <ArTifactId> PatchCA </t ArtifactId> <version> 0.0.1 </version> </dependency> <servlet> <tervet-name> ValidCode </Servlet-name <tervlet> <valvleMg.validCode </Servlet-Name <valglet> <servlet> <valveMg.validCode </Servlet <servlet-name> ValidCode </servlet-name> <RURL-PATER> /VALIDIMG.JPG </URL-PATERS> </SERVLET-MAPPING>
以上就是本文的全部内容 , 希望对大家的学习有所帮助。