快速业务通道

Java实现随机验证码功能实例 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
t);   //设置字体。   g.setFont(font);   //画边框。   g.setColor(Color.BLACK);   g.drawRect(0, 0, width - 1, height - 1);   //随机产生160条干扰线,使图象中的认证码不易被其它程序探测到。   g.setColor(Color.BLACK);   for(int i = 0; i < 160; i++)   {   int x = random.nextInt(width);   int y = random.nextInt(height);   int xl = random.nextInt(12);   int yl = random.nextInt(12);   g.drawLine(x, y, x + xl, y + yl);   }   //randomCode用于保存随机产生的验证码,以便用户登录后进行验证。   StringBuffer randomCode = new StringBuffer();   int red = 0, green = 0, blue = 0;   //随机产生codeCount数字的验证码。   for (int i = 0; i < codeCount; i++) {   //得到随机产生的验证码数字。   String strRand = String.valueOf(codeSequence[random.nextInt(36)]);   //产生随机的颜色分量来构造颜色值,这样输出的每位数字的颜色值都将不同。   red = random.nextInt(255);   green = random.nextInt(255);   blue = random.nextInt(255);   //用随机产生的颜色将验证码绘制到图像中。   g.setColor(new Color(red, green, blue));   g.drawString(strRand, (i + 1) * x, codeY);   //将产生的四个随机数组合在一起。   randomCode.append(strRand);   }   // 将四位数字的验证码保存到Session中。   HttpSession session = req.getSession();   session.setAttribute("validateCode", randomCode.toString());   // 禁止图像缓存。   resp.setHeader("Pragma", "no-cache");   resp.setHeader("Cache-Control", "no-cache");   resp.setDateHeader("Expires", 0);   resp.setContentType("image/jpeg");   //将图像输出到Servlet输出流中。   ServletOutputStream sos = resp.getOutputStream();   ImageIO.write(buffImg, "jpeg", sos);   sos.close(); } }

Java实现随机验证码功能实例(2)

时间:2011-03-05

需要在web.xml中声明servlet

<servlet> <servlet-name>ValidateCodeServlet</servlet-name> <servlet-class>com.servlet.ValidateCodeServlet</servlet-class> <init-param>   <param-name>width</param-name>   <param-value>200</param-value> </init-param> <init-param>   <param-name>height</param-name>   <param-value>80</param-value> </init-param> <init-param>   <param-name>codeCount</param-name>   <param-value>5</param-value> </init-param>   </servlet>   <servlet-mapping> <servlet-name>ValidateCodeServlet</servlet-name> <url-pattern>/validateCodeServlet</url-pattern>   </servlet-mapping>

需要引用的页面可以这样来写:

<ccid_file values="validateCodeServlet" width="100/" />

用户提交后就可以将用户输入的验证码与session中保存的字符串进行比对,达到验证的效果。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号