亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

Jsp servlet驗證碼工具類分享

2020-07-26 23:15:54
字體:
來源:轉載
供稿:網友

昨晚在csdn看到一位前輩寫一個ajax+servlet+jsp驗證,頓時心血來潮,在閱讀前輩的代碼下我親手體驗一下,做了一個驗證碼生成工具類,以供大家做個參考。

1、添加VeriyCodeUtils類生成驗證碼圖像

package com.servlet;  import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.OutputStream; import java.util.Random;  import javax.imageio.ImageIO;  /**  *  * @author hubiao  *  驗證碼生成器  * 用到API  *  BufferedImage 創建一個圖像  *  Graphics2D 繪制  *   fillRect(x,y,width,height);背景  *   font()字體  *   drawRect();邊框  *   drawLine();線  *   drwaString:圖像數據  *  ImageIO 生成圖像  */ public class VeriyCodeUtils {  /**   * @param output 保存驗證圖像的流   * @return 驗證碼   */  public static String newVeriyCode(OutputStream output)  {   int width = 90;   int height = 40;   int codeCount = 5;   char[] codeSequence = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',      'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',      'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };      //創建圖像對象,8位RGB   BufferedImage buffered = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);      //通過Crapahices來繪制圖像到BufferedImage中   Graphics2D gra = buffered.createGraphics();      //設置圖片背景:白色   gra.setColor(Color.WHITE);   gra.fillRect(0, 0, width, height);      //設置字體,字體大小根據圖片高度決定   gra.setFont(new Font("Fixedsys",Font.PLAIN,height-2));      //設置邊框:黑色,1cm   gra.setColor(Color.BLACK);   gra.drawRect(0, 0, width-1, height-1);      //生成10條黑色干擾線   gra.setColor(Color.BLACK);   Random ran = new Random();   for(int i = 0; i < 70;i++)   {    int x = ran.nextInt(255);    int y = ran.nextInt(255);    int x1 = ran.nextInt(255);    int y1 = ran.nextInt(255);    gra.drawLine(x, y,x+x1, y+y1);//畫直線   }   //生成驗證碼   StringBuffer sb = new StringBuffer();   int r = 0,g = 0,b = 0;   for(int i = 0; i < codeCount; i++)   {    String strRand = String.valueOf(codeSequence[ran.nextInt(codeSequence.length)]);    //對每位驗證碼都生成不同的顏色,增加識別系統難度    r = ran.nextInt(255);    g = ran.nextInt(255);    b = ran.nextInt(255);    gra.setColor(new Color(r, g, b));    gra.drawString(strRand, (i+1)*13, height-4);    sb.append(strRand);   }   try {    ImageIO.write(buffered, "jpeg", output);   } catch (Exception e) {    throw new RuntimeException(e);   }      return sb.toString();  } } 

2、servlet使用驗證碼

protected void doPost(HttpServletRequest req, HttpServletResponse resp)    throws ServletException, IOException {   //禁止圖像緩存   resp.setHeader("Pragma", "no-cache");    resp.setHeader("Cache-Control", "no-cache");    resp.setDateHeader("Expires", 0);    resp.setContentType("image/jpeg");      //生成驗證碼圖像   String veriyCode = VeriyCodeUtils.newVeriyCode(resp.getOutputStream());      //將驗證碼保存到session中   HttpSession session = req.getSession();   session.setAttribute("validateCode", veriyCode);  } 

3、JSP頁面使用驗證碼

</head>  <script type="text/javascript">   function createCode()   {    var t = new Date().getTime();//防止頁面緩存,使用時間搓    var srcImg = document.getElementById("srcImg");    srcImg.src="/ImgVeifyWeb/vity.do?"+t;   }  </script>  <body>  <h1>${requestScope.code}</h1>  <img id="srcImg" src="<c:url value="/vity.do"></c:url>" /> #這里使用直接讓img訪問servlet,通過response響應一個圖像流  <a href="##" rel="external nofollow" id="codeId" onclick="createCode()">換一張</a>  <form action="<c:url value="/hello.do"></c:url>" method="post">   <input type="text" name="codeVify"/>   <input type="submit" value="提交"/>  </form>  </body> 

4、校驗驗證碼

protected void doPost(HttpServletRequest req, HttpServletResponse resp)    throws ServletException, IOException {   HttpSession session = req.getSession();   Object validateCode = session.getAttribute("validateCode");   System.out.println(validateCode);      String codeVify = req.getParameter("codeVify");   if(codeVify==null || codeVify.equals(""))   {    req.setAttribute("code","驗證證不能為空");    req.getRequestDispatcher("/index.jsp").forward(req, resp);    return;   }else if(!validateCode.toString().equalsIgnoreCase(codeVify))   {    req.setAttribute("code","驗證證錯誤");    req.getRequestDispatcher("/index.jsp").forward(req, resp);    return;   }   System.out.println("下面開始 做其他業務操作....");  } 

校驗圖如下:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产九九精品视频| 国产精品香蕉av| 亚洲另类激情图| 亚洲大胆人体视频| 成人激情av在线| 色噜噜亚洲精品中文字幕| 日韩视频在线免费观看| 日本高清久久天堂| 久久免费成人精品视频| 91网站免费观看| www.欧美三级电影.com| 欧美三级xxx| 日韩av高清不卡| 97精品伊人久久久大香线蕉| 欧美精品999| 国产日韩换脸av一区在线观看| 亚洲精品一区二三区不卡| 78色国产精品| 国产91精品高潮白浆喷水| 日韩av在线直播| 国产性猛交xxxx免费看久久| 国产精品一区=区| 蜜月aⅴ免费一区二区三区| 国产欧美 在线欧美| 欧美第一黄色网| 欧美日韩亚洲一区二区三区| 亚洲国产欧美久久| 欧美性猛交视频| 国产精品美女免费看| 欧美日韩另类视频| 欧美精品xxx| 日韩av网址在线观看| 国产欧美精品一区二区三区介绍| 欧美二区在线播放| 亚洲一区二区免费| 日本国产一区二区三区| 在线电影av不卡网址| 国产精欧美一区二区三区| 日韩欧美在线字幕| 亚洲高清不卡av| 久久成人亚洲精品| 日韩欧美高清在线视频| 中文字幕一区二区精品| 国模吧一区二区| 欧洲美女免费图片一区| 亚洲欧洲一区二区三区在线观看| 亚洲欧美成人在线| 欧美影院久久久| 国产日韩欧美在线观看| 成人a在线观看| 亚洲精品99久久久久中文字幕| 欧美性受xxxx黑人猛交| 日本欧美在线视频| 欧美激情videos| 亲子乱一区二区三区电影| 亚洲国产另类 国产精品国产免费| 丝袜美腿亚洲一区二区| 国产亚洲欧洲高清| 亚洲电影成人av99爱色| 啊v视频在线一区二区三区| 国产经典一区二区| 亚洲视频999| 欧美大片免费观看| 欧美午夜影院在线视频| 国产精品第一区| 国产激情久久久| 欧美一区二区.| 国产成人久久久精品一区| 青草成人免费视频| 国产精品久久精品| 亚洲成人免费在线视频| 国产精品国内视频| 亚洲free性xxxx护士白浆| 欧美日韩国产精品一区二区不卡中文| 久久精品一偷一偷国产| 亚洲国产欧美一区二区丝袜黑人| 亚洲欧美日韩一区二区在线| 欧美另类极品videosbest最新版本| 久久国产精品久久国产精品| 韩国一区二区电影| 国产亚洲欧洲高清一区| 尤物99国产成人精品视频| 国产精品久久久久久久9999| 91免费的视频在线播放| 一区二区在线视频播放| 亚洲欧美日韩第一区| 国产一区二中文字幕在线看| 这里只有视频精品| 国产精品 欧美在线| 国产ts人妖一区二区三区| 国产精品永久免费视频| 欧美精品亚州精品| 97精品国产97久久久久久春色| 欧美激情乱人伦一区| 日韩小视频网址| 日本欧美爱爱爱| 亚洲免费av电影| 91爱爱小视频k| 日本成人免费在线| 青青草一区二区| 一区二区欧美在线| 日本高清不卡在线| 日本一区二区在线免费播放| 在线观看国产精品91| 91免费精品视频| 国产精品一区二区电影| 亚洲欧美日韩久久久久久| xxxxxxxxx欧美| 欧美贵妇videos办公室| 欧美精品一二区| 欧美一区二粉嫩精品国产一线天| 国产精品视频久久久| 91国内精品久久| 久久伊人精品天天| 成人网址在线观看| 精品视频在线观看日韩| 欧美中文在线观看国产| 久久久久久18| 国产精品久久久久999| 亚洲欧美日韩高清| 久久国产精品首页| 亚洲精品一区av在线播放| 欧美日韩国产中字| 国产成人精品一区二区三区| 日韩欧美a级成人黄色| 久久亚洲春色中文字幕| 欧美性高跟鞋xxxxhd| 国产精品露脸自拍| 国产亚洲欧美另类中文| 91精品国产综合久久久久久久久| 久久久久久av| 综合国产在线观看| 国模精品一区二区三区色天香| 国产精品欧美一区二区| 精品久久久久久亚洲国产300| 日韩av中文字幕在线播放| 日韩欧美大尺度| 午夜精品福利在线观看| 日韩国产在线看| 57pao成人永久免费视频| 亚洲二区中文字幕| 日韩精品欧美国产精品忘忧草| 91av福利视频| 欧美不卡视频一区发布| 在线播放日韩精品| 国产在线视频2019最新视频| 91高潮精品免费porn| 久久精品91久久久久久再现| 欧美一级在线亚洲天堂| 91精品在线一区| 深夜成人在线观看| 亚洲欧洲中文天堂| 国产欧美日韩综合精品| 日韩有码视频在线| 国产精品一区=区| 久国内精品在线| 精品久久久一区| 国产成人一区二区在线| 色多多国产成人永久免费网站| 久久伊人精品天天| 亚洲男子天堂网| 国产欧美日韩免费看aⅴ视频| 久久精品91久久香蕉加勒比| 青青久久av北条麻妃黑人|