內蒙古java團隊

          j2se,j2ee開發組
          posts - 139, comments - 212, trackbacks - 0, articles - 65
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          jsp生成驗證碼[轉]

          Posted on 2009-04-09 11:51 帥子 閱讀(266) 評論(0)  編輯  收藏 所屬分類: j2se技術專區申請加入java團隊
          <%@?page?contentType="image/jpeg"?import="java.awt.*,?
          java.awt.image.*,java.util.*,javax.imageio.*"?%>?
          <%?
          //?在內存中創建圖象?
          int?width=60,?height=20;?
          BufferedImage?image?=?new?BufferedImage(width,?height,?
          BufferedImage.TYPE_INT_RGB);?

          //?獲取圖形上下文?
          Graphics?g?=?image.getGraphics();?

          //?設定背景色?
          g.setColor(new?Color(0xDCDCDC));?
          g.fillRect(0,?0,?width,?height);?

          //畫邊框?
          g.setColor(Color.black);?
          g.drawRect(0,0,width-1,height-1);?

          //?取隨機產生的認證碼(4位數字)?
          String?rand?=?request.getParameter("rand");?
          rand?=?rand.substring(0,rand.indexOf("."));?
          switch(rand.length())?
          {?
          case?1:?rand?=?"000"+rand;?break;?
          case?2:?rand?=?"00"+rand;?break;?
          case?3:?rand?=?"0"+rand;?break;?
          default:?rand?=?rand.substring(0,4);?break;?
          }?

          //?將認證碼存入SESSION?
          session.setAttribute("rand",rand);?

          //?將認證碼顯示到圖象中?
          g.setColor(Color.black);?
          Integer?tempNumber?=?new?Integer(rand);?
          String?numberStr?=?tempNumber.toString();?

          g.setFont(new?Font("Atlantic?Inline",Font.PLAIN,18));?
          String?Str?=?numberStr.substring(0,1);?
          g.drawString(Str,8,17);?

          Str?=?numberStr.substring(1,2);?
          g.drawString(Str,20,15);?
          Str?=?numberStr.substring(2,3);?
          g.drawString(Str,35,18);?

          Str?=?numberStr.substring(3,4);?
          g.drawString(Str,45,15);?

          //?隨機產生88個干擾點,使圖象中的認證碼不易被其它程序探測到?
          Random?random?=?new?Random();?
          for?(int?i=0;i<20;i++)?
          {?
          int?x?=?random.nextInt(width);?
          int?y?=?random.nextInt(height);?
          g.drawOval(x,y,0,0);?
          }?

          //?圖象生效?
          g.dispose();?

          //?輸出圖象到頁面?
          ImageIO.write(image,?"JPEG",?response.getOutputStream());?
          %>
          主站蜘蛛池模板: 临朐县| 棋牌| 梁平县| 志丹县| 乌审旗| 喀什市| 安西县| 青州市| 平江县| 社旗县| 迭部县| 海伦市| 舞钢市| 湘西| 新绛县| 高青县| 内乡县| 徐州市| 朝阳县| 同仁县| 龙里县| 文山县| 揭东县| 宜兴市| 东阳市| 吉木乃县| 拉萨市| 克拉玛依市| 高台县| 浠水县| 峨边| 克东县| 筠连县| 唐海县| 电白县| 阿克| 辉南县| 土默特右旗| 龙陵县| 罗甸县| 宜城市|