介绍
使用Java怎么实现动态验证码单线设计?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强> 1。java的动态验证码我这里将介绍两种方法:强>
一:根据java本身提供的一种验证码的写法,这种呢只限于大家了解就可以了,因为java自带的模式编写的在实际开发中是没有意义的,所以只供学习一下就可以了,待会讲解的第二种呢就是我们需要掌握的一种模式了:
第一种的代码如下:
import java.awt.Color; import 属性; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;/* * ,* Servlet implementation  class 印度 ,*/@WebServlet (“/inde") public class  inde extends HttpServlet  { private 才能static final  long serialVersionUID =, 1 l; ,/* * ,,*,@see HttpServlet # HttpServlet () ,,*/public 才能;印度(),{ ,,,超级(); ,,,//,TODO Auto-generated constructor 存根 ,,} ,/* * ,,*,@see HttpServlet # doGet (HttpServletRequest 请求,HttpServletResponse 响应) ,,*/protected 才能;void  doGet (HttpServletRequest 请求,HttpServletResponse 响应),throws ServletException, IOException { ,,,,,this.doPost(请求,响应),,,,,,, ,,}/* *才能动态生成图片验证码 ,,*,@see HttpServlet # doPost (HttpServletRequest 请求,HttpServletResponse 响应) ,,*/protected 才能;void  doPost (HttpServletRequest 请求,HttpServletResponse 响应),throws ServletException, IOException { ,,,//,TODO Auto-generated method 存根 ,,,//创建图像 ,,,int 宽度=100; ,,,int 身高=40; ,,,//图片的大小设置 ,,,BufferedImage 图像=new BufferedImage(宽度、高度,BufferedImage.TYPE_INT_RGB); ,,,//创建画板,,,, ,,,Graphics g=image.getGraphics ();,, ,,,,setSquareBackGround (g,宽度,高度,5); ,,,//确定画笔颜色 ,,,g.setColor (Color.black); ,,,//填充矩形 ,,,g.fillRect(0, 0,宽度,高度); ,,,,,//在大矩形中放小矩形 ,,,,,g.setColor (Color.WHITE); ,,,,,g.fillRect(1,, 1,, 2,,身高2),,,,,,,,, ,,,//填充字符 ,,,String str =,“qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789"; ,,,StringBuffer 某人=new StringBuffer (); ,,,,//画随机干扰框 ,,,setSquareBackGround (g,宽度,高度,3),, ,,,//画干扰点 ,,,CreateRandomPoint(宽度,高度,100克,100),,,,, ,,,//随机画几条线 ,,,CreateRandomLine(宽度,高度,8 g, 100),,, ,,,//随机获取4个字符 ,,,Random 随机=new 随机(); ,,,for (int 小姐:=,0;,小姐:& lt;, 4,,我+ +),{ ,,,,,//62个填充字符里面随机的随机的收取字符 ,,,,,int 指数=random.nextInt (62); ,,,,,//截取一个字符 ,,,,,String 圣=str.substring(指数,指数+ 1); ,,,,,//把字符放到图片中去 ,,,,,g.setColor (Color.red); ,,,,,//设置字体 ,,,,,g.setFont (new 字体(“宋体“,Font.BOLD, 30)); ,,,,,g.drawString (20 * st,,我,,30);//防止4个字符在一起 ,,,,,sb.append (st); ,,,} ,,,//把StringBuffer中的验证码放到会话里面、目的是让登录调用 ,,,HttpSession se=request.getSession (); ,,,se.setAttribute (“number",, sb.toString ()); ,,,//发送图片到浏览器,指定发送的图片,和格式 ,,,response.setContentType(“图像/jpeg"); ,,,//图片,图片的格式、输出的方式 ,,,ImageIO.write(图像,,“jpg",, response.getOutputStream ()); ,,} null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null使用Java怎么实现动态验证码单线设计