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

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

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

    Greedy的工作室

    posts - 23,comments - 7,trackbacks - 0

     

    package cn.com.lough.struts.action;

    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics;
    import java.awt.image.BufferedImage;
    import java.util.Random;

    import javax.imageio.ImageIO;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;

    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.commons.lang.RandomStringUtils;

    /**
    * MyEclipse Struts Creation date: 01-11-2007
    *
    * XDoclet definition:
    *
    * @struts.action validate="true"
    */
    public class ValidatecodeAction extends Action {
     /*
      * Generated Methods
      */

     /**
      * Method execute
      *
      * @param mapping
      * @param form
      * @param request
      * @param response
      * @return ActionForward
      */
     public ActionForward execute(ActionMapping mapping, ActionForm form,
         HttpServletRequest request, HttpServletResponse response) {
       try {
         int width = 50;
         int height = 18;
         // 取得一個4位隨機字母數字字符串
         String s = RandomStringUtils.random(4, true, true);
         
         // 保存入session,用于與用戶的輸入進行比較.
         // 注意比較完之后清除session.
         HttpSession session = request.getSession(true);
         session.setAttribute("validateCode", s);

         response.setContentType("images/jpeg");
         response.setHeader("Pragma", "No-cache");
         response.setHeader("Cache-Control", "no-cache");
         response.setDateHeader("Expires", 0);

         ServletOutputStream out = response.getOutputStream();
         BufferedImage image = new BufferedImage(width, height,
             BufferedImage.TYPE_INT_RGB);
         Graphics g = image.getGraphics();
         // 設定背景色
         g.setColor(getRandColor(200, 250));
         g.fillRect(0, 0, width, height);

         // 設定字體
         Font mFont = new Font("Times New Roman", Font.BOLD, 18);// 設置字體
         g.setFont(mFont);

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

         // 隨機產生干擾線,使圖象中的認證碼不易被其它程序探測到
         g.setColor(getRandColor(160, 200));
         // 生成隨機類
         Random random = new Random();
         for (int i = 0; i < 155; i++) {
           int x2 = random.nextInt(width);
           int y2 = random.nextInt(height);
           int x3 = random.nextInt(12);
           int y3 = random.nextInt(12);
           g.drawLine(x2, y2, x2 + x3, y2 + y3);
         }

         // 將認證碼顯示到圖象中
         g.setColor(new Color(20 + random.nextInt(110), 20 + random
             .nextInt(110), 20 + random.nextInt(110)));

         g.drawString(s, 2, 16);

         // 圖象生效
         g.dispose();
         // 輸出圖象到頁面
         ImageIO.write((BufferedImage) image, "JPEG", out);
         out.close();
       } catch (Exception e) {
         e.printStackTrace();
       }
       return null;
     }

     private 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);
     }
    }



    jsp頁面的調用
    <html:img page="/validatecode.do" border="0" onclick="this.src='/validatecode.do'" alt="請輸入此驗證碼,如看不清請點擊刷新。" style="cursor:pointer" />
    posted on 2008-06-27 10:51 greedy 閱讀(288) 評論(0)  編輯  收藏 所屬分類: Struts

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲视频日韩视频| 精品国产无限资源免费观看| 亚洲日本国产综合高清| 亚洲AV无码专区国产乱码电影 | 亚洲国产精品va在线播放| 国产成人免费a在线视频app| xxxxwww免费| 久久免费国产精品一区二区| 免费无码午夜福利片 | **一级毛片免费完整视| 久久国产福利免费| 一个人看的www免费在线视频| 亚洲国产成人久久精品大牛影视| 亚洲国产精品免费在线观看| 亚洲精品高清视频| 亚洲国产精品无码专区在线观看| 国产国拍亚洲精品福利 | 久久久久久a亚洲欧洲AV| 亚洲美日韩Av中文字幕无码久久久妻妇| 热久久精品免费视频| a毛片基地免费全部视频| 无码精品A∨在线观看免费| 亚洲最大免费视频网| 精品无码无人网站免费视频| 在线观看片免费人成视频无码| 三上悠亚在线观看免费| fc2成年免费共享视频18| 一区二区三区AV高清免费波多| 国产午夜亚洲精品不卡电影| 亚洲AV无码一区二区一二区| 亚洲经典千人经典日产| 亚洲国产精品无码久久| 亚洲国产精品无码第一区二区三区| 亚洲欧美日韩国产成人| 亚洲AV无码一区二区三区牲色| 亚洲av乱码一区二区三区按摩| 美女的胸又黄又www网站免费| 免费人成大片在线观看播放| 一级特黄录像视频免费| 成人性生交大片免费看好| 日本免费在线中文字幕|