jsp生成驗證碼

            <%@   page   contentType="image/jpeg"   import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" pageEncoding="utf-8"%>   
            
          <%!   
            Color   getRandColor(
          int   fc,int   bc){//給定范圍獲得隨機顏色   
                            Random   random   =   new   Random();   
                            
          if(fc>255)   fc=255;   
                            
          if(bc>255)   bc=255;   
                            
          int   r=fc+random.nextInt(bc-fc);   
                            
          int   g=fc+random.nextInt(bc-fc);   
                            
          int   b=fc+random.nextInt(bc-fc);   
                            
          return   new   Color(r,g,b);   
                            }
             
            
          %>   
            
          <%   
            
          //設(shè)置頁面不緩存   
            response.setHeader("Pragma","No-cache");   
            response.setHeader(
          "Cache-Control","no-cache");   
            response.setDateHeader(
          "Expires",   0);   
              
            
          //   在內(nèi)存中創(chuàng)建圖象   
            int   width=60,   height=20;   
            BufferedImage   image   
          =   new   BufferedImage(width,   height,   BufferedImage.TYPE_INT_RGB);   
              
            
          //   獲取圖形上下文   
            Graphics   g   =   image.getGraphics();   
              
            
          //生成隨機類   
            Random   random   =   new   Random();   
              
            
          //   設(shè)定背景色   
            g.setColor(getRandColor(200,250));   
            g.fillRect(
          0,   0,   width,   height);   
              
            
          //設(shè)定字體   
            g.setFont(new   Font("Times   New   Roman",Font.PLAIN,18));   
              
            
          //畫邊框   
            
          //g.setColor(new   Color());   
            
          //g.drawRect(0,0,width-1,height-1);   
              
              
            
          //   隨機產(chǎn)生155條干擾線,使圖象中的認證碼不易被其它程序探測到   
            g.setColor(getRandColor(160,200));   
            
          for   (int   i=0;i<155;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);   
            }
             
              
            
          //   取隨機產(chǎn)生的認證碼(4位數(shù)字)   
            String   sRand="";   
            
          for   (int   i=0;i<4;i++){   
                    String   rand
          =String.valueOf(random.nextInt(10));   
                    sRand
          +=rand;   
                    
          //   將認證碼顯示到圖象中   
                    g.setColor(new   Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//調(diào)用函數(shù)出來的顏色相同,可能是因為種子太接近,所以只能直接生成   
                    g.drawString(rand,13*i+6,16);   
            }
             
              
            
          //   將認證碼存入SESSION   
            session.setAttribute("rand",sRand);   
              
              
            
          //   圖象生效   
            g.dispose();   
              
            
          //   輸出圖象到頁面   
            ImageIO.write(image,   "JPEG",   response.getOutputStream());   
              
              
            
          %>  

          posted on 2007-07-21 22:41 hugh 閱讀(197) 評論(0)  編輯  收藏 所屬分類: JAVA

          <2007年7月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導(dǎo)航

          統(tǒng)計

          公告

          小弟打算把硬盤里的所有資料整理到博客里,但是其中收藏了不少網(wǎng)上的文章(個人也記不住作者),請作者見諒!請知道作者的朋友(或作者本人)看到了請告訴小弟,小弟好把作者加上!

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 林芝县| 永和县| 阿勒泰市| 邓州市| 根河市| 昂仁县| 都昌县| 上思县| 澄江县| 广昌县| 东莞市| 潢川县| 湛江市| 利辛县| 田东县| 岱山县| 扶余县| 肥东县| 尚志市| 东城区| 青海省| 巩留县| 乌海市| 剑阁县| 翁牛特旗| 南投市| 项城市| 东宁县| 水城县| 大港区| 蕉岭县| 寻甸| 镇巴县| 武城县| 安泽县| 乐清市| 宜昌市| 寻乌县| 洛阳市| 石城县| 青岛市|