首页 > 课堂 > 小程序 > 正文

代码实现简单的生成随机验证码小程序

2020-03-21 16:25:25
字体:
来源:转载
供稿:网友

代码实现一个简单的生成随机验证码的小程序

 

  1. //随机生成验证码 
  2.   
  3. //第一步: 
  4.   
  5.     public void doGet(HttpServletRequest request, HttpServletResponse response) 
  6.             throws ServletException, IOException { 
  7.        
  8.   
  9.             test(response); 
  10.           
  11.     }   
  12.   
  13.   private void test(HttpServletResponse response) throws IOException { 
  14.   
  15.         int width = 120,height=25; 
  16.         //生成一张图片  此时得到一张宽120,长25的一张黑色图片 
  17.         BufferedImage  img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 
  18.           
  19.         Graphics grap = img.getGraphics();//得到一个画笔 
  20.       
  21.         //填充背景色 
  22.         grap.setColor(Color.pink); 
  23.         //设置填充的区域 
  24.         grap.fillRect(1, 1, width-2, height-2); 
  25.           
  26.         //设置边框的颜色  同填充背景颜色 靠近谁是设置哪个属性的颜色 
  27.         grap.setColor(Color.red); 
  28.         grap.drawRect(0, 0, width-1, height-1); 
  29.           
  30.         //设置字体 
  31.         grap.setFont(new Font("黑体", Font.BOLD|Font.ITALIC, 18)); 
  32.           
  33.           
  34.         //向图片上写字 嘿嘿随机生成了字符串 
  35.         Random r = new Random(); 
  36.         int p = 15; 
  37.         for(int i=1;i<=4;i++) 
  38.         { 
  39.             grap.drawString(r.nextInt(10)+"", p,20); 
  40.             p+=15; 
  41.         } 
  42.           
  43.         //向图片上画线 
  44.         for(int i=1;i<=10;i++) 
  45.         { 
  46.             grap.drawLine(r.nextInt(width), r.nextInt(height), r.nextInt(width), r.nextInt(height)); 
  47.         } 
  48.       
  49.         //把图片发送给客户端 
  50.         ImageIO.write(img, "jpg", response.getOutputStream()); 
  51.     } 
  52.   
  53.   
  54.   
  55.   
  56.   
  57. //第二部:新建login.html 
  58.   
  59.   
  60.   
  61. <!DOCTYPE html> 
  62. <html> 
  63.   <head> 
  64.     <title>login.html</title> 
  65.    <script type="text/javascript"
  66.      
  67.       function ff(){ 
  68.              var img = document.getElementById("image"); 
  69.              img.src="/day33_response/demo4?user=1"+new Date().getTime(); 
  70.             // img.setAttribute("src","/day33_response/demo4?user="+new Date().getTime()); 
  71.       } 
  72.      
  73.    </script> 
  74.   </head> 
  75.     
  76.   <body> 
  77.      <form action="#" method="get"
  78.                  用户名<input type="text" name="uname"><br/><br/> 
  79.                   密&nbsp;码<input type="password" name="pwd"><br/><br/> 
  80.                   验证码<input type="text" name="code"
  81.                   <!-- 如果image没有写src页面刚加载时没有东西,刷新之后才会显示验证码图片 --> 
  82.           <img id="image" src='/day33_response/demo4'
  83.           <!-- 换两行 --> 
  84.          <a href="javascript:ff()">换一张</a><br/> <br/>  
  85.           <input type="submit" value="提交">  
  86.      </form>      
  87.   </body> 
  88. </html> 
  89.   
  90.   
  91.   
  92. // 大功告成就可以发布到tomcat上浏览了 
  93.   
  94. //此处介绍一种懒人方法,在doGet方法中,其中ValidateCode四个函数分别是矩形的宽、高以及验证码的个数和干扰线的条数,然后第一步的函数就可统统省略了 
  95.   
  96.       
  97.   
  98.         ValidateCode code = new ValidateCode(320, 25, 4, 8); 
  99.         code.write(response.getOutputStream()); 
  100.   
  101.   
  102.   
  103. //注:导相应的ValidateCode的JAR包喔。 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表