久久亚洲精品成人_国产精品欧美综合亚洲_亚洲va天堂va欧美ⅴa在线_91色视频在线观看_久久影院亚洲_一级黄色片播放_日韩av在线一区_精品一区二区在线看_老头吃奶性行交视频_日韩免费高清视频_天天操天天爽天天干_日本欧美在线视频

首頁 > 編程 > JSP > 正文

java驗證碼

2024-09-05 00:23:38
字體:
來源:轉載
供稿:網友
<一>、Java生成驗證碼圖片
1.Servlet生成驗證碼圖片
Java代碼 復制代碼
  1. package com.logcd.servlet;   
  2.   
  3. import java.awt.Color;   
  4. import java.awt.Font;   
  5. import java.awt.Graphics2D;   
  6. import java.awt.image.BufferedImage;   
  7. import java.util.Random;   
  8. import javax.imageio.ImageIO;   
  9. import javax.servlet.*;   
  10. import java.io.*;   
  11. import javax.servlet.http.*;   
  12. import javax.servlet.ServletException;   
  13. import javax.servlet.http.HttpServlet;   
  14. import javax.servlet.http.HttpServletRequest;   
  15. import javax.servlet.http.HttpServletResponse;   
  16.   
  17. @SuppressWarnings("serial")   
  18. public class RandomCode extends HttpServlet {   
  19.   
  20.     public void doGet(HttpServletRequest request, HttpServletResponse response)   
  21.             throws ServletException, IOException {   
  22.   
  23.         this.doPost(request, response);   
  24.     }   
  25.   
  26.     public void doPost(HttpServletRequest request, HttpServletResponse response)   
  27.             throws ServletException, IOException {   
  28.   
  29.         // 驗證碼圖片的寬度。   
  30.         int width = 70;   
  31.         // 驗證碼圖片的高度。   
  32.         int height = 30;   
  33.         BufferedImage buffImg = new BufferedImage(width, height,   
  34.                 BufferedImage.TYPE_INT_RGB);   
  35.         Graphics2D g = buffImg.createGraphics();   
  36.   
  37.         // 創建一個隨機數生成器類。   
  38.         Random random = new Random();   
  39.   
  40.         // 設定圖像背景色(因為是做背景,所以偏淡)   
  41.         g.setColor(getRandColor(200250));   
  42.         g.fillRect(00, width, height);   
  43.         // 創建字體,字體的大小應該根據圖片的高度來定。   
  44.         Font font = new Font("Times New Roman", Font.HANGING_BASELINE, 28);   
  45.         // 設置字體。   
  46.         g.setFont(font);   
  47.   
  48.         // 畫邊框。   
  49.         g.setColor(Color.BLACK);   
  50.         g.drawRect(00, width - 1, height - 1);   
  51.         // 隨機產生155條干擾線,使圖象中的認證碼不易被其它程序探測到。   
  52.         //g.setColor(Color.GRAY);   
  53.         g.setColor(getRandColor(160,200));   
  54.         for (int i = 0; i < 155; i++) {   
  55.             int x = random.nextInt(width);   
  56.             int y = random.nextInt(height);   
  57.             int xl = random.nextInt(12);   
  58.             int yl = random.nextInt(12);   
  59.             g.drawLine(x, y, x + xl, y + yl);   
  60.         }   
  61.   
  62.         // randomCode用于保存隨機產生的驗證碼,以便用戶登錄后進行驗證。   
  63.         StringBuffer randomCode = new StringBuffer();   
  64.   
  65.         // 設置默認生成4個驗證碼   
  66.         int length = 4;   
  67.         // 設置備選驗證碼:包括"a-z"和數字"0-9"   
  68.         String base = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";   
  69.   
  70.         int size = base.length();   
  71.   
  72.         // 隨機產生4位數字的驗證碼。   
  73.         for (int i = 0; i < length; i++) {   
  74.             // 得到隨機產生的驗證碼數字。   
  75.             int start = random.nextInt(size);   
  76.             String strRand = base.substring(start, start + 1);   
  77.   
  78.             // 用隨機產生的顏色將驗證碼繪制到圖像中。   
  79.             // 生成隨機顏色(因為是做前景,所以偏深)   
  80.             //g.setColor(getRandColor(1, 100));   
  81.                
  82.             //調用函數出來的顏色相同,可能是因為種子太接近,所以只能直接生成   
  83.             g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));   
  84.   
  85.             g.drawString(strRand, 15 * i + 624);   
  86.   
  87.             // 將產生的四個隨機數組合在一起。   
  88.             randomCode.append(strRand);   
  89.         }   
  90.         // 將四位數字的驗證碼保存到Session中。   
  91.         HttpSession session = request.getSession();   
  92.         session.setAttribute("rand", randomCode.toString());   
  93.   
  94.         //圖象生效   
  95.         g.dispose();   
  96.   
  97.         // 禁止圖像緩存。   
  98.         response.setHeader("Pragma""no-cache");   
  99.         response.setHeader("Cache-Control""no-cache");   
  100.         response.setDateHeader("Expires"0);   
  101.   
  102.         response.setContentType("image/jpeg");   
  103.   
  104.         // 將圖像輸出到Servlet輸出流中。   
  105.         ServletOutputStream sos = response.getOutputStream();   
  106.         ImageIO.write(buffImg, "jpeg", sos);   
  107.         sos.flush();   
  108.         sos.close();   
  109.   
  110.     }   
  111.   
  112.     Color getRandColor(int fc, int bc) {// 給定范圍獲得隨機顏色   
  113.         Random random = new Random();   
  114.         if (fc > 255)   
  115.             fc = 255;   
  116.         if (bc > 255)   
  117.             bc = 255;   
  118.         int r = fc + random.nextInt(bc - fc);   
  119.         int g = fc + random.nextInt(bc - fc);   
  120.         int b = fc + random.nextInt(bc - fc);   
  121.         return new Color(r, g, b);   
  122.     }   
  123.   
  124. }  

2.配置
Xml代碼 復制代碼
  1. <servlet>  
  2.     <servlet-name>RandomCode</servlet-name>  
  3.     <servlet-class>com.logcd.servlet.RandomCode</servlet-class>  
  4. </servlet>  
  5. <servlet-mapping>  
  6.     <servlet-name>RandomCode</servlet-name>  
  7.     <url-pattern>/randomCode</url-pattern>  
  8. </servlet-mapping>  

3.調用
Html代碼 復制代碼
  1. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
  2. <meta http-equiv="pragma" content="no-cache"/>  
  3. <meta http-equiv="cache-control" content="no-cache"/>  
  4. <meta http-equiv="expires" content="0"/>  
  5.   
  6. <iframe src="http://127.0.0.1/js_test/randomCode" id="codeFrame" name="codeFrame" frameborder="no" border="0" marginwidth="0"  
  7.      marginheight="0" scrolling="no" allowtransparency="yes" height="35" width="102"></iframe>  
  8.      <a href="javascript:void(0);" onclick="refreshCode();">看不清,換一張</a>  
  9.     <br>    
  10.     <span id="codeImg"><img border=0 src="randomCode"></span>  
  11.     <a href="javascript:void(0);" onclick="reloadCode()">看不清,再換一張</a>  

Js代碼 復制代碼
  1. function $(id){   
  2.     return document.getElementById(id);   
  3. }   
  4.   
  5. /**刷新iframe**/  
  6. function refreshCode(){   
  7.     window.frames["codeFrame"].location.reload();   
  8. }   
  9.   
  10. /**替換圖片**/  
  11. function reloadCode(){   
  12.     $("codeImg").innerHTML = "<img border=0 src='randomCode'>";   
  13. }  

<二>、Checked vs UnChecked Exception
       任何的異常都是Throwable類,并且在它之下包含兩個字類Error / Exception,而Error僅在當在Java虛擬機中發生動態連接失敗或其它的定位失敗的時候,Java虛擬機拋出一個Error對象。典型的簡易程序不捕捉或拋出Errors對象。
        Exception中比較重要的就是RuntimeException(運行時異常)-可能在執行方法期間拋出但未被捕捉的 RuntimeException 的任何子類都無需在 throws 子句中進行聲明。
        除了Error與RuntimeException,其他剩下的異常都是你需要關心的,而這些異常類統稱為Checked Exception,至于Error與RuntimeException則被統稱為Unchecked Exception。
  1. Checked exception: 這類異常都是Exception的子類 。異常的向上拋出機制進行處理,假如子類可能產生A異常,那么在父類中也必須throws A異常。可能導致的問題:代碼效率低,耦合度過高。C#中就沒有使用這種異常機制。
  2. Unchecked exception: 這類異常都是RuntimeException的子類,雖然RuntimeException同樣也是Exception的子類,但是它們是非凡的,它們不能通過client code來試圖解決,所以稱為Unchecked exception。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产成人精品亚洲午夜麻豆| 久久精品成人一区二区三区蜜臀| 中文字幕一区二区三区精华液| 精品人妻一区二区三区换脸明星 | 青青草原一区二区| 欧美成人精品3d动漫h| 福利在线一区二区三区| 亚洲一区二区免费| 日本欧美一级片| 欧美成人激情视频| 亚洲欧洲美洲在线综合| 欧美第一区第二区| 91精品婷婷国产综合久久竹菊| 亚洲男人的天堂一区二区| www.欧美亚洲| 国产v日产∨综合v精品视频| 亚洲黄色在线免费观看| 一二三区在线播放| 亚洲午夜18毛片在线看| 日本一级黄色录像| 久久久久黄色片| 任你操精品视频| 波多野结衣a v在线| 欧美肉大捧一进一出免费视频| 亚洲男人天堂av在线| 777视频在线| 最新天堂在线视频| 久久精品国产露脸对白| 欧美一级小视频| 亚洲美女性囗交| 无码人妻少妇色欲av一区二区| 人人干人人视频| 婷婷六月天在线| 性欧美在线视频| 国产精品99久久久精品无码| 四虎国产精品免费| v8888av| 97人妻人人揉人人躁人人| 欧美性受xxxx黑人| 久久久一二三区| 成人公开免费视频| 亚洲精品免费在线观看视频| 老牛嫩草一区二区三区日本| 免费精品视频最新在线| 国产成人精品免费| 国产精品乱人伦中文| 亚洲靠逼com| 色综合久久久久综合体桃花网| 福利微拍一区二区| 欧美精品亚洲二区| 亚洲国模精品一区| 欧美日韩成人在线播放| 欧美中在线观看| 999热视频| 中文字幕第一页亚洲| 欧美 日韩 亚洲 一区| 日本黄色三级大片| 国产中文字幕一区二区| 黄色一级免费视频| 国产农村老头老太视频| 久久99国产精品尤物| 91蜜桃传媒精品久久久一区二区| 亚洲人精品午夜| 色av综合在线| 亚洲免费高清视频| 欧美亚洲第一页| 久久久久久久久久久久久久一区 | 国内精品国产三级国产aⅴ久| 久久久国产精品久久久| 国产精品a成v人在线播放| 91色琪琪电影亚洲精品久久| 国内精品视频免费| 岛国大片在线播放| 亚洲久久久久久| 在线观看日韩中文字幕| 亚洲欧美另类一区| av一二三不卡影片| 91国内精品野花午夜精品 | 91亚洲大成网污www| 亚洲精品一二三| 日韩欧美一卡二卡| 91超碰caoporn97人人| 蜜桃久久精品乱码一区二区| 国产黄色一级网站| 国产一区在线观看免费| 国产成人三级在线播放| 成人avav影音| 欧美日韩国产电影| 91福利视频网| youjizz.com在线观看| 欧美熟妇一区二区| 性一交一乱一精一晶| 国产日韩欧美a| 欧美精品一区二区三区一线天视频| 久久久久久久国产精品视频| 麻豆精品传媒视频| 亚洲熟女乱综合一区二区| 久久久久女人精品毛片九一 | 亚洲第一级黄色片| 日韩av片免费在线观看| 91精品国产毛片武则天| 天天躁日日躁aaaa视频| 亚洲精品18p| 又紧又大又爽精品一区二区| 日韩精品在线播放| 国产精品视频在线免费观看| 欧在线一二三四区| 制服.丝袜.亚洲.中文.综合懂色| 国产在线麻豆精品观看| 欧美日韩一区二区在线观看| 欧美一区在线直播| 国产淫片免费看| 天堂在线免费观看视频| 成人久久18免费网站麻豆| 91精品欧美久久久久久动漫 | 日本中文字幕在线不卡| 亚洲欧美另类在线视频| 91污片在线观看| 亚洲欧美日韩国产中文专区| 精品伦精品一区二区三区视频| 白丝校花扒腿让我c| 亚洲成人黄色片| 欧美性xxxxx极品娇小| 4438全国亚洲精品在线观看视频| 久草视频国产在线| 日本一区二区免费在线观看| 91在线视频18| 亚洲日韩欧美视频| 亚洲午夜精品久久久中文影院av| 国产3p露脸普通话对白| 国产香蕉97碰碰久久人人| 欧美男人的天堂一二区| 91精品视频网| 亚洲字幕一区二区| 日韩精品一区二区三区高清免费| 99国产精品久久久久久久成人| 一级特黄大欧美久久久| 91产国在线观看动作片喷水| 久久精品影视大全| 五月激情丁香婷婷| 91精品国模一区二区三区| 97国产超碰| 久久综合九色综合网站| 91精品福利在线一区二区三区| 青青久久av北条麻妃黑人| 欧美黄网站在线观看| 在线亚洲欧美日韩| 婷婷中文字幕综合| 91黄色精品| 日韩一区精品字幕| 91精品国产欧美日韩| 久久久久久99| 免费黄色网址在线| 色偷偷一区二区三区| 激情一区二区三区| 圆产精品久久久久久久久久久| 日韩久久一区二区| 国产欧美欧洲在线观看| 国产精品美女高潮无套| 久久久久久久久免费| 97超级碰碰碰久久久| 精品影片一区二区入口| 99视频精品免费视频| 欧美精品一本久久男人的天堂| 成年人黄色片视频| 精品一区二区三区免费| 日韩在线视频二区| 欧美第一页浮力影院| 国产一区二区不卡| 欧美第一黄色网| av在线网站观看| 国产蜜臀97一区二区三区| 国产精品日韩欧美大师| 日本视频在线免费| 亚洲一区二区av电影| 国产乱码精品一区二区三区日韩精品 | 亚洲欧美在线另类| 亚洲自拍偷拍在线| 黄色在线免费观看| 欧美一级二级在线观看| 精品少妇一区二区三区在线| 蜜桃视频第一区免费观看| 久久综合伊人77777蜜臀| 日本xxxx免费| 国产三级三级三级精品8ⅰ区| 国产日韩视频在线观看| 青青操免费在线视频| 欧美天天综合网| 毛片av在线播放| 激情综合色综合久久| 国产成人小视频在线观看| 国产性猛交普通话对白| 日韩一级二级三级| 尤物网站在线看| 亚洲美女少妇撒尿| 中文字幕中文字幕在线中一区高清| 亚洲精品国产suv一区| 九九久久精品一区| 老司机福利在线观看| 在线欧美一区二区| 日本成人黄色网| 久久精品水蜜桃av综合天堂| 国产精品久久精品国产| 亚洲第一大网站| 欧美日韩成人免费| 精品人妻在线播放| 日韩电影大全免费观看2023年上| 日韩成人av影院| 精品国产成人在线| 日批视频在线免费看| 国产欧美精品一区二区三区四区 | 91在线高清视频| 国产精品久久久久久无人区| 久久精品国产清自在天天线| 日本一级片免费| 亚洲国产欧美久久| 国产亚洲精品熟女国产成人| 欧美一区二区三区日韩| youjizz.com日本| 一本到三区不卡视频| 男女视频在线看| 亚洲自拍偷拍欧美| 国产精彩免费视频| 亚洲综合色在线| 国产日韩一区二区在线观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲va欧美va在线观看| 性生交大片免费看女人按摩| 97不卡在线视频| 国产精品一区二区黑人巨大| 97国产精品免费视频| 一级做a爱片性色毛片| 55夜色66夜色国产精品视频| 伊人网综合在线| 欧美精品videosex性欧美| 日韩综合在线观看| 4438全国亚洲精品在线观看视频| 中文字幕第315页| 庆余年2免费日韩剧观看大牛| 极品人妻一区二区三区| 日本三级欧美三级| 国产亚洲欧美日韩精品| 欧美成人一二三区| 中文字幕在线看视频国产欧美| 久久久久久久九九九九| 久久久精品国产亚洲| 国产一卡二卡三卡| 欧美专区福利在线| 日韩一级免费毛片| www.一区二区三区| 国产成人综合在线观看| 一区二区日本伦理| 亚洲欧洲精品成人久久奇米网| 国内外成人激情视频| 五月综合激情日本mⅴ| 免费看的av网站| 日韩一区二区三区免费看 | 国产va亚洲va在线va| 悠悠色在线精品| gogo亚洲国模私拍人体| 欧美一区二区三区白人| www青青草原| 亚洲18私人小影院| 日本亚洲欧美天堂免费| 中文字幕在线中文字幕日亚韩一区| 亚洲天堂精品在线观看| 女人扒开双腿让男人捅| 国产一区二区三区18| 中文字幕日韩三级| 国产美女99p| 国产精品国产a| 69xxx免费视频| 色偷偷88888欧美精品久久久| 91国偷自产中文字幕久久| 成人免费视频网站| 中文字幕第一区| 国产艳妇疯狂做爰视频| 一区二区三区在线播放欧美| 国产v在线观看| 亚洲精品成人久久久998| 午夜伊人狠狠久久| 91麻豆免费视频网站| 国产精品久久久久久久7电影| 成人精品gif动图一区| 国产区二区三区| 亚洲人成电影在线| 人妻91麻豆一区二区三区| 天天做天天爱天天高潮| 欧美日韩一级片网站| 男人天堂2024| 欧美一区二区三区四区在线观看地址| 亚洲激情六月丁香| 天天干中文字幕| 成人av影视在线| 夜夜嗨av一区二区三区网页 | 欧美专区第一页| 97久久超碰精品国产| 国产精品一区二区无码对白| 久久91亚洲人成电影网站| 激情综合色播激情啊| 亚洲一区二区蜜桃| 精品亚洲一区二区三区在线观看 | 久久久999视频| 亚洲精品日韩丝袜精品| 久久一区激情| 污视频网址在线观看| 欧美黑人xxxx| 26uuu国产电影一区二区| 欧美做受高潮中文字幕| 欧美伊久线香蕉线新在线| 久久久久国色av免费看影院| 超碰人人干人人| 国产高清自拍99| 欧美色精品在线视频| 国产女主播福利| 青青在线视频观看| 欧美成人四级hd版| 国产亚洲精品福利| 久久国产在线观看| 在线免费观看成人| 日韩精品高清在线| 国产黑丝在线一区二区三区| 国产又黄又粗又猛又爽的视频 | 国产不卡av在线播放| 国产av人人夜夜澡人人爽麻豆 | 日韩av新片网| 少妇久久久久久| 99久久国产综合精品女不卡| 999福利视频| 亚洲欧美99| 亚洲欧美日韩天堂一区二区| 国产一区二区三区av电影| 亚洲av综合一区二区| 国产伦精品一区二区三区| 91精品国产欧美一区二区18| 免费高清视频精品| 亚洲一区二区三区视频在线| 亚洲精品国产精品乱码不99按摩| 黑人精品一区二区三区| 污版视频在线观看| 国产精品一区二区久久久久| 午夜精品123| wwwav在线播放| 俄罗斯女人裸体性做爰| 91免费视频国产| 欧美一区二区不卡视频| 亚洲欧美精品一区二区| 国产成人在线网站| 黄色一级大片在线免费观看| 亚洲高清视频一区| 久久精品国产久精国产一老狼| 国产精品久久久久久久裸模| 在线视频一区二区三区四区| 国产av麻豆mag剧集| 66m—66摸成人免费视频| 亚洲一区二区美女| 久久亚洲精品伦理| 自拍偷拍你懂的| 一区二区不卡在线观看| 亚洲精品在线视频| 国产精品久久久久久久岛一牛影视 | 久久精品视频国产| 免费在线观看的av网站| 国产精品嫩草视频| 欧美一级黄色录像| 99re成人在线| 精品国产乱码久久久久久蜜臀网站| 亚洲少妇中文字幕| 亚洲国产精品一区二区第一页 | 国产精品6699| 精品久久久久久久久久久院品网| 不卡的av中国片| 国产精品国产三级国产普通话对白| 中文字幕在线视频一区二区| 天堂精品一区二区三区| 欧美精品久久久久久久免费观看 | 国产一级精品在线| 天天干天天操天天操| 久久人人爽人人片| 亚洲一区二三| 成人亚洲欧美一区二区三区| 亚洲人精品午夜在线观看| 亚洲va在线va天堂| 91尤物视频在线观看| 亚洲精品一区二区口爆| 潘金莲一级黄色片| 亚洲美女性囗交| 中文字幕中文字幕在线中一区高清| 欧洲午夜精品久久久| 亚洲美女在线观看| 日本丰满少妇一区二区三区| 337p粉嫩大胆噜噜噜噜噜91av| www.色视频| 欧美另类一区二区| 性欧美精品中出| 五月天激情播播| 日b视频免费观看| 免费亚洲精品视频| 日韩av色在线| 一区国产精品视频| 4438x亚洲最大成人网| 亚洲已满18点击进入久久| 99久久99久久精品国产片果冻| 天堂av资源网| 亚洲一区二区人妻| 日本一本高清视频| 四虎国产成人精品免费一女五男| 激情在线观看视频| 日韩av在线综合| 乱人伦xxxx国语对白|