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

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

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

    JSP生成驗(yàn)證碼

    Posted on 2007-04-18 19:54 久城 閱讀(1071) 評(píng)論(3)  編輯  收藏 所屬分類: Jsp學(xué)習(xí)
    <%@ page contentType="image/jpeg"
        
    import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"
        pageEncoding
    ="gb2312"%>
    <%!Color getRandColor(int fc, int bc) {//給定范圍獲得隨機(jī)顏色   
            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è)置頁(yè)面緩存   
        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();
        
    //生成隨機(jī)類   
        Random random = new Random();
        
    // 設(shè)定背景色   
        g.setColor(getRandColor(200250));
        g.fillRect(
    00, width, height);
        
    //設(shè)定字體   
        g.setFont(new Font("Times New Roman", Font.PLAIN, 18));  
        
    // 隨機(jī)產(chǎn)生155條干擾線,使圖象中的認(rèn)證碼不易被其它程序探測(cè)到   
        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);
        }

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

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


    歡迎來訪!^.^!
    本BLOG僅用于個(gè)人學(xué)習(xí)交流!
    目的在于記錄個(gè)人成長(zhǎng).
    所有文字均屬于個(gè)人理解.
    如有錯(cuò)誤,望多多指教!不勝感激!

    Feedback

    # re: JSP生成驗(yàn)證碼  回復(fù)  更多評(píng)論   

    2007-04-18 20:34 by 靜兒
    其實(shí)我經(jīng)常登陸你的blog,一直覺得你是個(gè)奇人。現(xiàn)在最令我奇怪的一件事發(fā)生了:你怎么知道我的blog的?呵呵,以后我得多向你學(xué)習(xí),你可別嫌麻煩哦!

    # re: JSP生成驗(yàn)證碼[未登錄]  回復(fù)  更多評(píng)論   

    2007-06-11 22:33 by ^_^
    最好寫一下調(diào)用并判斷驗(yàn)證碼的過程

    # re: JSP生成驗(yàn)證碼  回復(fù)  更多評(píng)論   

    2007-08-15 15:07 by ddd
    LS, 調(diào)用和判斷很簡(jiǎn)單呀!

    既然程序里已經(jīng)生成了驗(yàn)證碼,

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

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

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    Copyright © 久城

    主站蜘蛛池模板: 亚洲人成网站999久久久综合| 免费福利在线播放| 国产精品免费播放| 一边摸一边桶一边脱免费视频 | 亚洲日产乱码一二三区别| 亚洲欧洲日韩国产| 亚洲国产精品久久人人爱| 亚洲成年人电影网站| 久久亚洲日韩看片无码| 亚洲精品亚洲人成在线麻豆| 亚洲性色高清完整版在线观看| 亚洲人成影院在线高清| 亚洲综合久久精品无码色欲| 亚洲a∨国产av综合av下载| 美景之屋4在线未删减免费| 国产乱子伦精品免费视频| 国精产品一区一区三区免费视频| 免费成人高清在线视频| 亚洲免费黄色网址| 成人性生交大片免费看无遮挡| 免费毛片网站在线观看| 免费一级黄色毛片| 亚洲中文字幕无码久久精品1| 亚洲成AV人片一区二区| 亚洲精品午夜久久久伊人| 亚洲日韩av无码中文| 暖暖免费中文在线日本| 91成人免费福利网站在线| 9277手机在线视频观看免费| 成年黄网站色大免费全看| 永久免费av无码网站大全| 亚洲精品视频在线看| 亚洲AV无码乱码在线观看富二代 | 久久影院亚洲一区| 亚洲最新视频在线观看| 亚洲综合色婷婷在线观看| 人人鲁免费播放视频人人香蕉| 中文字幕无码日韩专区免费| 国产福利在线免费| 亚洲午夜精品第一区二区8050| 亚洲综合一区二区国产精品|