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

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

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

    小毅的驗證碼

    Posted on 2008-09-10 16:42 H2O 閱讀(175) 評論(0)  編輯  收藏 所屬分類: java
    checkCode.java
    package com.yz.checkcode;

    import java.io.IOException;    
    import java.io.PrintWriter;

    import javax.servlet.ServletException;    
    import javax.servlet.ServletOutputStream;    
       
    import javax.servlet.http.HttpServlet;    
    import javax.servlet.http.HttpServletRequest;    
    import javax.servlet.http.HttpServletResponse;    
    import javax.servlet.http.HttpSession;    
       
    import com.sun.image.codec.jpeg.JPEGCodec;    
    import com.sun.image.codec.jpeg.JPEGImageEncoder;    
       
    import java.awt.*;    
    import java.awt.image.*;    
    import java.util.*;    
       
    public class checkCode    
        extends HttpServlet {    
       
      public void doGet(HttpServletRequest request, HttpServletResponse response) throws   
           ServletException, IOException {    
         response.reset();    
         response.setContentType("image/jpeg");    
         response.setHeader("Pragma","No-cache");
         response.setHeader("Cache-Control","no-cache");
         response.setHeader("Expires",   "Tues,   01   Jan   1980   00:00:00   GMT");   
        
       
    //在內存中創建圖象    
        int width = 58, height = 18;    
         BufferedImage image = new BufferedImage(width, height,    
                                                 BufferedImage.TYPE_INT_RGB);    
       
    //獲取圖形上下文    
         Graphics g = image.getGraphics();    
       
    //生成隨機類    
         Random random = new Random();    
       
    //設定背景色    
         g.setColor(new Color(201 + random.nextInt(50), 201 + random.nextInt(50),    
                             201 + random.nextInt(50)));    
         g.fillRect(0, 0, width, height);    
       
    //設定字體    
         g.setFont(new Font("Times new Roman", Font.PLAIN, 18));    
       
    //畫邊框    
    g.setColor(new Color(255,140,0));    
    g.drawRect(0,0,width-1,height-1);    
       
    //隨機產生155條干擾線,使圖象中的認證碼不易被其它程序探測到    
         g.setColor(new Color(160 + random.nextInt(41), 160 + random.nextInt(41),    
                             160 + random.nextInt(41)));    
        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);    
         }    
       
    //取隨機產生的認證碼
        String src 
    = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKMNOPQRSTUVWXYZ0123456789"
    ;
         String sRand 
    = ""
    ;    
        for (int i 
    = 0; 
    i < 4; i++) {    
            int position
    =random.nextInt(src.length());
            
    String radomChar
    =src.charAt(position)+"";
           
    sRand +
    = radomChar;    
       
    //將認證碼顯示到圖象中    
           g.setColor(new Color(20 + random.nextInt(111), 20 + random.nextInt(111),    
                               20 + random.nextInt(111)));    
       
    //調用函數出來的顏色相同,可能是因為種子太接近,所以只能直接生成    
           g.drawString(  radomChar, 13 * i + 6, 16);    
         }    
        
    //圖象生效    
         g.dispose(); 
         HttpSession session 
    = request.getSession(true);  
         
         
    //將認證碼存入SESSION    
          session.setAttribute("checkCode", sRand);
       
    //輸出圖象到頁面     
         ServletOutputStream out 
    = response.getOutputStream();    
         
    JPEGImageEncoder encoder 
    = JPEGCodec.createJPEGEncoder(out);    
         
    encoder.encode(image);    
         System.out.println("驗證碼:\t"+sRand);
         out.println(sRand);
         out.flush();
         out.close();
       }    
    }    

    getKey.java
    package com.yz.checkcode;

    import java.io.IOException;
    import java.io.PrintWriter;

    import javax.servlet.ServletException;
    import javax.servlet.ServletInputStream;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;

    public class getKey extends HttpServlet {

        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            this.doPost(request, response);
        }

        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {

            response.setContentType("text/html");
            response.setCharacterEncoding("utf-8");
            PrintWriter out = response.getWriter();    
            String key=request.getSession().getAttribute("checkCode").toString();
            out.println(key);
            out.flush();
            out.close();
        }
    }

    posts - 0, comments - 21, trackbacks - 0, articles - 101

    Copyright © H2O

    主站蜘蛛池模板: 亚洲一区精品无码| 亚洲AV网站在线观看| 久久久青草青青亚洲国产免观| 粉色视频免费入口| 日日AV拍夜夜添久久免费| 亚洲性色精品一区二区在线| 免费一本色道久久一区| youjizz亚洲| 永久免费毛片手机版在线看| 亚洲av日韩综合一区久热| 国产人成免费视频| 一级黄色毛片免费看| 国产精品亚洲片在线| 18禁男女爽爽爽午夜网站免费| 亚洲一区二区三区深夜天堂| 最近2019中文字幕免费看最新| 最新亚洲人成无码网www电影| 亚洲&#228;v永久无码精品天堂久久| 羞羞的视频在线免费观看| 久久久久久久亚洲精品| 怡红院免费的全部视频| 亚洲一级二级三级不卡| 无人在线观看完整免费版视频| 亚洲熟妇无码AV| 亚洲毛片αv无线播放一区| 4444www免费看| 亚洲AV无码一区二区三区电影| 亚洲国产精品自在拍在线播放| 国产在线观看免费视频软件 | 亚洲精品私拍国产福利在线| 最近免费中文字幕大全高清大全1| 亚洲中字慕日产2021| 免费A级毛片无码久久版| 国产一区二区三区免费观在线 | 亚洲一卡2卡3卡4卡国产网站 | 成人爽A毛片免费看| 九九久久精品国产免费看小说 | 好看的亚洲黄色经典| 丁香花在线观看免费观看| 一级成人a做片免费| 亚洲精品中文字幕麻豆|