本文为大家分享了 Java a, 供大家参考, 具体内容如下
1 、 validcode
패키지 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.httpervletrequest; import; javax.servlet.http.httpervletresponse; import javax.servlet.http.httpsession; import com.github.bingoohuang.patchca.color.colorfactory; import com.github.bingoohuang.patchca.custom.custom.custchaservice; com.github.bingoohuang.patchca.filter.predefined.curvesrippleFilterFactory; import com.github.bingoohuang.patchca.filter.predefined.diffuseripplefilterfactory; import com.github.bingoohuang.patchca.filter.filter.filter.filter.fledefined.doubleripply; com.github.bingoohuang.patchca.filter.predefined.marblerippleFilterFactory; import com.github.bingoohuang.patchca.filter.predefined.wobblerippleFilterfactory; import com.github.bingoohuang.patchca.utils.encoder.encoderhelper; com.github.bingoohuang.patchca.word.randomwordfactory; public class validcode 확장 httpservlet {private static configurablecaptchaservice cs = new configurablecaptchaservice (); 개인 정적 임의 임의 = 새로운 랜덤 (); 정적 {// 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] = renxt (71); random.nextint (256)} 새로운 색상 (C [0], C [2]); randomwordfactory wf = new randomwordfactory (); Wf.SetchAracters ( "23456789ABCDEFGHIGKMNPQRSTUVWXYZABCDEFGHIGKLMNPQRSTUVWXYZ"); wf.setmaxlength (4); wf.setminlength (4); cs. setwordfactory (wf); } public void doget (httpservletrequest 요청, httpservletreponse 응답)은 servletexception, ioexception {switch (random.nextint (5)) {case 0 : cs.setfilterfactory (new curvesrippleFilterfactory (cs .getColorFactory ()); 부서지다; 사례 1 : CS.SetFilterFactory (New MarblerippleFilterFactory ()); 부서지다; 사례 2 : CS.SetFilterFactory (New DoublerippleFilterFactory ()); 부서지다; 사례 3 : cs.setFilterFactory (New WobblerippleFilterFactory ()); 부서지다; 사례 4 : cs.setFilterFactory (new diffuserippleFilterFactory ()); 부서지다; } httpsession session = requestsession (false); if (session == null) {session = request.getSession (); } setResponseHeaders (응답); String token = encoderHelper.getChallAngeAndWriteImage (cs, "png", response.getoutputStream ()); session.setattribute ( "ValidCode", Token); System.out.println ( "当前的 sessionId =" + session.getId () + " +" + "," + Token); } 보호 된 void setResponseHeaders (httpservletResponse 응답) {response.setContentType ( "image/png"); Response.SetHeader ( "캐시 제어", "No-Cache, No Store"); Response.SetHeader ( "Pragma", "No-Cache"); Long Time = System.CurrentTimeMillis (); Response.SetDateHeader ( "최종 수정", 시간); response.setDateHeader ( "날짜", 시간); Response.SetDateHeader ( "만료", 시간); } public void dopost (httpservletRequest 요청, httpservletResponse 응답) servletexception, ioexception {}} 2.xml 代码
<pectionency> <groupid> com.github.bingoohuang </groupid> <artifactid> patchca </artifactid> <버전> 0.0.1 </version> </dependency> <servlet-name> validcode </servlet-name> <servlet-class> validimg.validcode </servlets> <Servlet-Name> ValidCode </servlet-name> <Url-pattern> /validimg.jpg </url-pattern> </servlet-mapping>
以上就是本文的全部内容, 希望对大家的学习有所帮助。