<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");   
        
       
    //在內(nèi)存中創(chuàng)建圖象    
        int width = 58, height = 18;    
         BufferedImage image = new BufferedImage(width, height,    
                                                 BufferedImage.TYPE_INT_RGB);    
       
    //獲取圖形上下文    
         Graphics g = image.getGraphics();    
       
    //生成隨機類    
         Random random = new Random();    
       
    //設(shè)定背景色    
         g.setColor(new Color(201 + random.nextInt(50), 201 + random.nextInt(50),    
                             201 + random.nextInt(50)));    
         g.fillRect(0, 0, width, height);    
       
    //設(shè)定字體    
         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);    
       
    //隨機產(chǎn)生155條干擾線,使圖象中的認(rèn)證碼不易被其它程序探測到    
         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);    
         }    
       
    //取隨機產(chǎn)生的認(rèn)證碼
        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;    
       
    //將認(rèn)證碼顯示到圖象中    
           g.setColor(new Color(20 + random.nextInt(111), 20 + random.nextInt(111),    
                               20 + random.nextInt(111)));    
       
    //調(diào)用函數(shù)出來的顏色相同,可能是因為種子太接近,所以只能直接生成    
           g.drawString(  radomChar, 13 * i + 6, 16);    
         }    
        
    //圖象生效    
         g.dispose(); 
         HttpSession session 
    = request.getSession(true);  
         
         
    //將認(rèn)證碼存入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

    主站蜘蛛池模板: 狠狠综合亚洲综合亚洲色| 国产乱妇高清无乱码免费| 国产91在线免费| 丝袜足液精子免费视频| 久久精品国产精品亚洲色婷婷 | 成年男女男精品免费视频网站| 亚洲AV成人精品一区二区三区| 亚洲热线99精品视频| 最近最好最新2019中文字幕免费| 国产午夜亚洲精品国产| 国产中文在线亚洲精品官网| 91成人免费在线视频| 色网站在线免费观看| 亚洲色图国产精品| 又黄又爽无遮挡免费视频| 99精品视频在线观看免费专区| 久久亚洲欧美国产精品| 久久伊人久久亚洲综合| 国产伦精品一区二区三区免费下载| 久久狠狠躁免费观看2020| 美女视频免费看一区二区| 亚洲男女性高爱潮网站| 中文字幕第一页亚洲| 午夜a级成人免费毛片| 四虎国产成人永久精品免费| 黄网站在线播放视频免费观看| 亚洲一级毛片在线观| 亚洲AV无码精品无码麻豆| 国产精品免费视频一区| aⅴ免费在线观看| 国产在线一区二区综合免费视频| 国产精品亚洲一区二区三区久久| 亚洲成人福利在线| 亚洲AV无码成人精品区天堂| 亚洲AV无码乱码精品国产| 成人人免费夜夜视频观看| 四虎在线最新永久免费| 最近中文字幕免费完整| 国产精品免费观看调教网| 精品一区二区三区免费观看| 黄页网站在线免费观看|