<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JSP生成驗證碼

    Posted on 2007-04-18 19:54 久城 閱讀(1074) 評論(3)  編輯  收藏 所屬分類: Jsp學習
    <%@ page contentType="image/jpeg"
        
    import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"
        pageEncoding
    ="gb2312"%>
    <%!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);
        }
    %>
    <%
        
    //設置頁面緩存   
        response.setHeader("Pragma""No-cache");
        response.setHeader(
    "Cache-Control""no-cache");
        response.setDateHeader(
    "Expires"0);
        
    // 在內存中創建圖象   
        int width = 60, height = 20;
        BufferedImage image 
    = new BufferedImage(width, height,
                BufferedImage.TYPE_INT_RGB);
        
    // 獲取圖形上下文   
        Graphics g = image.getGraphics();
        
    //生成隨機類   
        Random random = new Random();
        
    // 設定背景色   
        g.setColor(getRandColor(200250));
        g.fillRect(
    00, width, height);
        
    //設定字體   
        g.setFont(new Font("Times New Roman", Font.PLAIN, 18));  
        
    // 隨機產生155條干擾線,使圖象中的認證碼不易被其它程序探測到   
        g.setColor(getRandColor(160200));
        
    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);
        }

        
    // 取隨機產生的認證碼(4位數字)   
        String sRand = "";
        
    for (int i = 0; i < 4; i++{
            String rand 
    = String.valueOf(random.nextInt(10));
            sRand 
    += rand;
            
    // 將認證碼顯示到圖象中   
            g.setCor(new Color(20 + random.nextInt(110), 20 + random
            .nextInt(
    110), 20 + random.nextInt(110)));
            
    //調用函數出來的顏色相同,可能是因為種子太接近,所以只能直接生成   
            g.drawString(rand, 13 * i + 616);
        }

        
    // 將認證碼存入SESSION   
        session.setAttribute("rand", sRand);
        
    // 圖象生效   
        g.dispose();
        
    // 輸出圖象到頁面   
        ImageIO.write(image, "JPEG", response.getOutputStream());
    %>


    歡迎來訪!^.^!
    本BLOG僅用于個人學習交流!
    目的在于記錄個人成長.
    所有文字均屬于個人理解.
    如有錯誤,望多多指教!不勝感激!

    Feedback

    # re: JSP生成驗證碼  回復  更多評論   

    2007-04-18 20:34 by 靜兒
    其實我經常登陸你的blog,一直覺得你是個奇人。現在最令我奇怪的一件事發生了:你怎么知道我的blog的?呵呵,以后我得多向你學習,你可別嫌麻煩哦!

    # re: JSP生成驗證碼[未登錄]  回復  更多評論   

    2007-06-11 22:33 by ^_^
    最好寫一下調用并判斷驗證碼的過程

    # re: JSP生成驗證碼  回復  更多評論   

    2007-08-15 15:07 by ddd
    LS, 調用和判斷很簡單呀!

    既然程序里已經生成了驗證碼,

    用它直接跟User輸入的比較就好。。。

    至于驗證碼如何保存,Session,Request啥的,就是喜好問題了

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    Copyright © 久城

    主站蜘蛛池模板: 亚洲欧美国产国产一区二区三区 | 成年免费大片黄在线观看com| 四虎永久在线精品免费观看视频| 亚洲国产成人一区二区精品区| 本免费AV无码专区一区| 国产亚洲精品精品国产亚洲综合| 免费人成大片在线观看播放电影| 免费在线一级毛片| 人人爽人人爽人人片av免费 | 特级一级毛片免费看| 亚洲一级Av无码毛片久久精品| 一个人看的www免费高清| 亚洲熟伦熟女新五十路熟妇 | 亚洲乱码日产精品一二三| 狠狠久久永久免费观看| 又大又硬又粗又黄的视频免费看 | 欧美好看的免费电影在线观看| 2019亚洲午夜无码天堂| 免费鲁丝片一级观看| 黄网站色成年片大免费高清| 亚洲自偷自偷在线制服 | 特级毛片免费播放| 亚洲人成伊人成综合网久久久| 久久免费看少妇高潮V片特黄| 亚洲国产精品日韩在线观看| 日韩成人免费在线| eeuss在线兵区免费观看| 亚洲av无码av制服另类专区| 免费h片在线观看网址最新| 亚洲成a人无码亚洲成av无码| 亚洲情侣偷拍精品| 久久w5ww成w人免费| 亚洲国产精品美女久久久久| 中文字幕第13亚洲另类| 69pao强力打造免费高清| 亚洲中文无码卡通动漫野外| 国产亚洲视频在线播放| 精品久久久久久久久免费影院| 国产精品亚洲综合网站| 色噜噜综合亚洲av中文无码| 国产高清在线免费|