使用Java怎么实现动态验证码单线设计

  介绍

使用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怎么实现动态验证码单线设计