java实用验证码的实现代码
发布时间:2020-12-14 14:24:02 所属栏目:Java 来源:网络整理
导读:本文为大家分享了java实用验证码的实现代码,供大家参考,具体内容如下 1、ValidCode package validImg; import java.awt.Color;import java.io.IOException;import java.util.Random;import javax.servlet.ServletException;import javax.servlet.http.Http
本文为大家分享了java实用验证码的实现代码,供大家参考,具体内容如下 1、ValidCode package 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.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.github.bingoohuang.patchca.color.ColorFactory; import com.github.bingoohuang.patchca.custom.ConfigurableCaptchaService; import com.github.bingoohuang.patchca.filter.predefined.CurvesRippleFilterFactory; import com.github.bingoohuang.patchca.filter.predefined.DiffuseRippleFilterFactory; 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 extends HttpServlet { private static ConfigurableCaptchaService cs = new ConfigurableCaptchaService(); private static Random random = new Random(); static { // 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] = random.nextInt(71); } else { c[fi] = random.nextInt(256); } } return new Color(c[0],c[1],c[2]); } }); RandomWordFactory wf = new RandomWordFactory(); wf.setCharacters("23456789abcdefghigkmnpqrstuvwxyzABCDEFGHIGKLMNPQRSTUVWXYZ"); wf.setMaxLength(4); wf.setMinLength(4); cs.setWordFactory(wf); } public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { switch (random.nextInt(5)) { case 0: cs.setFilterFactory(new CurvesRippleFilterFactory(cs .getColorFactory())); break; case 1: cs.setFilterFactory(new MarbleRippleFilterFactory()); break; case 2: cs.setFilterFactory(new DoubleRippleFilterFactory()); break; case 3: cs.setFilterFactory(new WobbleRippleFilterFactory()); break; case 4: cs.setFilterFactory(new DiffuseRippleFilterFactory()); break; } 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); } protected void setResponseHeaders(HttpServletResponse response) { response.setContentType("image/png"); response.setHeader("Cache-Control","no-cache,no-store"); response.setHeader("Pragma","no-cache"); long time = System.currentTimeMillis(); response.setDateHeader("Last-Modified",time); response.setDateHeader("Date",time); response.setDateHeader("Expires",time); } public void doPost(HttpServletRequest request,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> 以上就是本文的全部内容,希望对大家的学习有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- troubleshooting tools in JDK 7--转载
- 将文本与Java Graphics 2d对齐
- 将JDBC ResultSet结果集转成List
- java – logils中的log4j:如何登录文件?
- java – 在任何数据库上处理大量事务的方法?
- 为什么java不会将int []转换成Integer []
- jsf – java.lang.NoClassDefFoundError:javax / servlet
- Java集合之LinkedList源码分析
- 如何将GeneratedKey添加到config.properties文件?
- 详解idea maven项目如何使用lib下得jar包