本文为大家分享了 Java 实用验证码的实现代码 供大家参考 , 具体内容如下
1 、 Validcode
Пакет ValidImg; Импорт java.awt.color; import java.io.ioexception; import java.util.random; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; импорт javax.servlet.http.httpservlectrequest; javax.servlet.http.httpservletresponse; import javax.servlet.http.httpsession; import com.github.bingoohuang.patchca.color.colorfactory; импорт com.github.bingoohuang.patchca.custom.colorfablecaptcayervice; com.github.bingoohuang.patchca.filter.predefined.curvesripplefilterfactory; import com.github.bingoohuang.patchca.filter.predefined.diffuseripplefilterfactory; импорт com.github.bingoohuang.patchcaccaccaccaC.Filter.predefifle. com.github.bingoohuang.patchca.filter.predefined.marbleripplefilterfactory; import com.github.bingoohuang.patchca.filter.predefined.wobbleripplefilterfactory; import.github.bingoohuang.patchca.Utils.encoder.encoderhel com.github.bingoohuang.patchca.word.randomwordfactory; открытый класс ValidCode Extens httpservlet {private static configurecaptchaservice cs = new configurecaptchaservice (); частный статический случайный случайный random = new Random (); static {// cs.setcolorfactory (new singlecolorfactory (новый цвет (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); random.nextint (256); Randomwordfactory wf = new randomwordfactory (); Wf.Setcharacters ("23456789abcdefghigkmnpqrStuvwxyzabcdefghiggklmnpqrStuvwxyz"); Wf.SetMaxLength (4); Wf.SetMinlength (4); Cs.SetWordFactory (WF); } public void doget (httpservletrequest, httpservletresponse response), бросает ServletException, ioException {switch (random.nextint (5)) {case 0: cs.setfilterfactory (new curvipplefilterfactory (cs .getColactory ())); перерыв; Случай 1: cs.setfilterfactory (new MarbleripplefilterFactory ()); перерыв; Случай 2: cs.setfilterfactory (new DoubleripplefilterFactory ()); перерыв; Случай 3: cs.setfilterfactory (new WobbleripplefilterFactory ()); перерыв; Случай 4: cs.setfilterfactory (new diffuseripplefilterfactory ()); перерыв; } 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 ("当前的 sessionId =" + session.getId () + ", 验证码 =," + token); } защищенный void setResponseHeaders (httpservletresponse response) {response.setContentType ("Image/png"); response.setheader («Контроль кэша», «без каша, без магазина»); response.setheader ("pragma", "без Cache"); давно = system.currenttimemillis (); response.setDateHeader («Последний модифицированный», время); response.setDateHeader («дата», время); response.setDateHeader («истекает», время); } public void dopost (httpservletrequest, httpservletresponse response) throws servletexception, 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> videyCode </servlet-name> <url-pattern> /validimg.jpg </url-pattern> </servlet-mapping>
以上就是本文的全部内容 , 希望对大家的学习有所帮助。