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

首頁 > 編程 > JSP > 正文

JSP + Servlet實現(xiàn)生成登錄驗證碼示例

2024-09-05 00:22:54
字體:
供稿:網(wǎng)友

隨機(jī)生成四位數(shù)驗證碼,包括漢字,數(shù)字,英文大小寫。

1.Servlet類

package servlet;import java.awt.BasicStroke;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.geom.AffineTransform;import java.awt.geom.Line2D;import java.awt.image.BufferedImage;import java.io.IOException;import java.io.PrintWriter;import java.util.Random;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class PictureCheckCode extends HttpServlet {   private static final long serialVersionUID = 1L;     public PictureCheckCode() {       super();     }     public void destroy() {       super.destroy();      }     public void init() throws ServletException {       super.init();     }     /*該方法主要作用是獲得隨機(jī)生成的顏色*/      public Color getRandColor(int s,int e){       Random random=new Random ();       if(s>255) s=255;       if(e>255) e=255;       int r,g,b;       r=s+random.nextInt(e-s);  //隨機(jī)生成RGB顏色中的r值       g=s+random.nextInt(e-s);  //隨機(jī)生成RGB顏色中的g值       b=s+random.nextInt(e-s);  //隨機(jī)生成RGB顏色中的b值       return new Color(r,g,b);     }   public void doGet(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    System.out.println("this is doGet method");    this.doPost(request, response);  }  public void doPost(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    //設(shè)置不緩存圖片     response.setHeader("Pragma", "No-cache");     response.setHeader("Cache-Control", "No-cache");     response.setDateHeader("Expires", 0);     //指定生成的響應(yīng)圖片,一定不能缺少這句話,否則錯誤.     response.setContentType("image/jpeg");     int width=80,height=35;   //指定生成驗證碼的寬度和高度     BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); //創(chuàng)建BufferedImage對象,其作用相當(dāng)于一圖片     Graphics g=image.getGraphics();   //創(chuàng)建Graphics對象,其作用相當(dāng)于畫筆     Graphics2D g2d=(Graphics2D)g;    //創(chuàng)建Grapchics2D對象     Random random=new Random();     Font mfont=new Font("楷體",Font.BOLD,16); //定義字體樣式     g.setColor(getRandColor(200,250));     g.fillRect(0, 0, width, height);  //繪制背景     g.setFont(mfont);          //設(shè)置字體     g.setColor(getRandColor(180,200));     //繪制100條顏色和位置全部為隨機(jī)產(chǎn)生的線條,該線條為2f     for(int i=0;i<100;i++){       int x=random.nextInt(width-1);       int y=random.nextInt(height-1);       int x1=random.nextInt(6)+1;       int y1=random.nextInt(12)+1;       BasicStroke bs=new BasicStroke(2f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); //定制線條樣式       Line2D line=new Line2D.Double(x,y,x+x1,y+y1);       g2d.setStroke(bs);       g2d.draw(line);   //繪制直線     }     //輸出由英文,數(shù)字,和中文隨機(jī)組成的驗證文字,具體的組合方式根據(jù)生成隨機(jī)數(shù)確定。     String sRand="";     String ctmp="";     int itmp=0;     //制定輸出的驗證碼為四位     for(int i=0;i<4;i++){       switch(random.nextInt(3)){         case 1:   //生成A-Z的字母            itmp=random.nextInt(26)+65;            ctmp=String.valueOf((char)itmp);            break;         case 2:   //生成漢字            String[] rBase={"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};             //生成第一位區(qū)碼            int r1=random.nextInt(3)+11;            String str_r1=rBase[r1];            //生成第二位區(qū)碼            int r2;            if(r1==13){              r2=random.nextInt(7);              }else{              r2=random.nextInt(16);            }            String str_r2=rBase[r2];            //生成第一位位碼            int r3=random.nextInt(6)+10;            String str_r3=rBase[r3];            //生成第二位位碼            int r4;            if(r3==10){              r4=random.nextInt(15)+1;            }else if(r3==15){              r4=random.nextInt(15);            }else{              r4=random.nextInt(16);            }            String str_r4=rBase[r4];            //將生成的機(jī)內(nèi)碼轉(zhuǎn)換為漢字            byte[] bytes=new byte[2];            //將生成的區(qū)碼保存到字節(jié)數(shù)組的第一個元素中            String str_12=str_r1+str_r2;            int tempLow=Integer.parseInt(str_12, 16);            bytes[0]=(byte) tempLow;            //將生成的位碼保存到字節(jié)數(shù)組的第二個元素中            String str_34=str_r3+str_r4;            int tempHigh=Integer.parseInt(str_34, 16);            bytes[1]=(byte)tempHigh;            ctmp=new String(bytes);            break;         default:            itmp=random.nextInt(10)+48;            ctmp=String.valueOf((char)itmp);            break;       }       sRand+=ctmp;       Color color=new Color(20+random.nextInt(110),20+random.nextInt(110),random.nextInt(110));       g.setColor(color);       //將生成的隨機(jī)數(shù)進(jìn)行隨機(jī)縮放并旋轉(zhuǎn)制定角度 PS.建議不要對文字進(jìn)行縮放與旋轉(zhuǎn),因為這樣圖片可能不正常顯示       /*將文字旋轉(zhuǎn)制定角度*/       Graphics2D g2d_word=(Graphics2D)g;       AffineTransform trans=new AffineTransform();       trans.rotate((45)*3.14/180,15*i+8,7);       /*縮放文字*/       float scaleSize=random.nextFloat()+0.8f;       if(scaleSize>1f) scaleSize=1f;       trans.scale(scaleSize, scaleSize);       g2d_word.setTransform(trans);       g.drawString(ctmp, 15*i+18, 14);     }     HttpSession session=request.getSession(true);     session.setAttribute("randCheckCode", sRand);     System.out.println(sRand);    g.dispose();  //釋放g所占用的系統(tǒng)資源     ImageIO.write(image,"JPEG",response.getOutputStream()); //輸出圖片   }}

2.web.xml配置

<servlet>  <description>This is the description of my J2EE component</description>  <display-name>This is the display name of my J2EE component</display-name>  <servlet-name>PictureCheckCode</servlet-name>  <servlet-class>servlet.PictureCheckCode</servlet-class> </servlet><servlet-mapping>  <servlet-name>PictureCheckCode</servlet-name>  <url-pattern>/pictureCheckCode</url-pattern> </servlet-mapping>

3.jsp頁面輸出驗證碼

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>登錄頁面</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><script language="javascript">  function myReload() {    document.getElementById("CreateCheckCode").src = document        .getElementById("CreateCheckCode").src        + "?nocache=" + new Date().getTime();  }</script></head><body>  <form action="loginServlet" method="get">      <p class="font tdheight">        驗證碼:<input type="text" name="checkCode"          style="width:70px;height:35px;"> <img          src="pictureCheckCode" id="CreateCheckCode" align="middle"          style="margin-top:-10px;"> <br> <a href=""          onclick="myReload()"          style="font-size:12px;color:red;margin-left:156px;"> 看不清,換一個</a>      </p>      <br><input type="submit" value="提交"            class="font" style="width:240px;height:35px;background:#f19e28">    </form></body></html>

4.后臺Servlet判斷驗證碼是否與輸入一致

通過request.getParameter(“checkCode”)獲取輸入驗證碼,與session.getAttribute(“randCheckCode”)比較是否一致。

public void doGet(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    String code = request.getParameter("checkCode");    HttpSession session = request.getSession();    if (!code.equals(session.getAttribute("randCheckCode"))) {      request.setAttribute("errormsg", "驗證碼不正確");    }     System.out.println(request.getAttribute("errormsg"));  }

運行結(jié)果:

servlet實現(xiàn)驗證碼,servlet生成驗證碼,servlet驗證碼

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到JSP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
成人久久久久久| 亚洲天堂久久| 亚洲视频在线观看不卡| jizz在线观看| 中文字幕丰满孑伦无码专区| caopeng视频| 亚洲人在线观看视频| 国产综合一区二区| 欧美成人有码| 天堂男人av| 日韩精品中文字幕在线一区| 在线观看精品视频一区二区三区| 国产一区二区三区av在线| 亚洲一级黄色| 日韩经典第一页| 亚洲精品666| 91短视频在线观看| 日韩av高清在线| 国产极品美女高潮无套久久久| 国产精品第8页| 手机免费看av片| 国产呦系列欧美呦日韩呦| 欧美性感美女h网站在线观看免费| 久久视频在线直播| 性xx十八spa按摩| 久久综合九色综合欧美狠狠| 91精品国产色综合久久不卡粉嫩| 日韩电影中文字幕一区| 中文字幕欧美日韩在线| 91精品国自产在线| 91免费黄视频| 中文字幕一区二区av| 91在线视频播放| 欧美卡一卡二卡三| 少女频道在线观看高清| 国产一二三区精品| 高清一区二区| 国产欧美日韩在线一区二区| 最新日韩在线视频| 中文字幕亚洲天堂| 亚洲日本黄色| 日本熟妇乱子伦xxxx| 97视频在线观看免费高清完整版在线观看| 一区二区三区中文| 精品视频在线免费观看| 欧美成人影院| 国产伦精品一区二区三区照片| 国产理论在线| 国内精品久久久久久久久电影网| 97人人爽人人爽人人爽| 久草在线综合| 蜜臀av性久久久久蜜臀aⅴ| 国产成人精品网址| 国产老肥熟xxxx在线观看| 黄页网站大全在线免费观看| 久久精品日产第一区二区三区精品版| 国产精品视频一区在线观看| 精品一区二区免费看| 91国语精品自产拍在线观看性色| 白白操在线视频| 亚洲成av人在线观看| 精品人妻一区二区免费视频| 国产精品久久久久久久泡妞| 免费a级毛片在线观看| 哺乳一区二区三区中文视频| 羞羞网站在线观看| 欧美色网一区二区| 一本一本久久a久久精品牛牛影视| 亚洲综合网在线观看| 久久99精品久久只有精品| 大香煮伊手机一区| 久久精品三级| 69堂免费精品视频在线播放| 日韩欧美视频一区二区| 日韩免费av片| 欧美 日韩 国产一区二区在线视频| 亚洲美女炮图| 色噜噜狠狠色综合网图区| 男女做爰猛烈刺激| 97国产成人无码精品久久久| 天天综合天天综合色| 欧美日本在线看| 亚洲一区高清| 国产网站无遮挡| 欧美一级片中文字幕| 亚洲视频分类| huan性巨大欧美| av在线播放亚洲| 久久精品理论片| 日本在线播放一区二区| 日本女优在线视频一区二区| 女人在下体塞跳蛋在线观看| 狠狠操在线视频| 91日本在线视频| 红杏视频成人| jlzzjlzz亚洲日本少妇| 亚洲网站在线观看| 亚洲高清免费一级二级三级| 国内高清免费在线视频| 亚洲午夜一二三区视频| 五福影院新址进入www1378| 精品美女永久免费视频| av免费观看一区二区| 触手亚洲一区二区三区| 中文资源在线播放| 2019日韩中文字幕mv| 欧美色爱综合| 91精品欧美综合在线观看最新| 国内老熟妇对白hdxxxx| 精品久久久久久中文字幕人妻最新| 亚洲国产aⅴ天堂久久| 那种视频在线观看| 97超级碰在线看视频免费在线看| 国产精品网址| 中文字幕一区二区视频| 五月天综合网| 成人片在线免费看| 姑娘第5集在线观看免费好剧| 最近中文字幕免费mv2018在线| 麻豆网站在线观看| 91av免费| 日韩av日韩在线观看| 91香蕉嫩草影院入口| 岛国毛片在线播放| 亚洲乱色熟女一区二区三区| av中文字幕在线播放| 在线免费一级片| 亚洲精品国产拍免费91在线| 亚洲综合免费观看高清完整版| 亚洲综合婷婷| 伊人影院蕉久552| 欧美日韩日日骚| 国产午夜福利精品| 91国内在线播放| 一本色道久久综合亚洲精品小说| 亚洲毛片在线播放| 亚洲一区二区三区四区不卡| 日韩夫妻性生活xx| 国产精品av一区二区| 亚洲成av人片在线观看无| 99热这里只有精品在线| 日韩欧美高清视频| 欧美bbbbxxxx| 欧美一区二区三区激情视频| 三级性生活视频| 欧美色片在线观看| 亚洲美女少妇无套啪啪呻吟| 久久草视频在线| 精品国产免费人成网站| 免费毛片小视频| 午夜影院观看视频免费| 97超超碰碰| 国产一级免费| 伊人久久大香线蕉成人综合网| 91精品短视频| 7m第一福利500精品视频| 久久精品一区四区| 亚洲视频免费观看| 欧美调教视频| 亚洲成人久久久| 亚洲电影二区| 三级在线观看视频| 国产主播一区二区| 欧美日韩另类丝袜其他| 国产精品色哟哟网站| 国内精品一区视频| 亚洲最大成人av| 8x8x8国产精品| 日本少妇高清视频| 性色视频在线观看| 国产一区二区久久久久| 日本久久亚洲电影| 美国三级日本三级久久99| 美女视频网站黄色亚洲| 亚洲免费视频中文字幕| 久久香蕉国产线看观看99| 自拍偷拍电影| 国产69精品久久久久9999apgf| 男人看的污网站| 欧美成人女星排行榜| 91最新在线视频| 日本a级不卡| 亚洲永久在线观看| 免费看污网站| 欧美日韩加勒比精品一区| 黄色大片在线观看| 青春有你2免费观看完整版在线播放高清| 污片在线免费观看| 欧美大片免费久久精品三p| 黄色在线观看网| 国产乡下妇女做爰视频| 国产日韩亚洲欧美精品| av成人 com a| 国产区av在线| 久久国产加勒比精品无码| 99视频这里有精品| 日韩国产综合| 日韩av影视大全| 一级黄色片在线播放| 全部a∨一极品视觉盛宴| 日本中文字幕在线免费观看| 91精品国产乱码久久久久久蜜臀| 99视频有精品高清视频| 久久久久久久久网| 欧美激情视频一区| 欧美人体大胆444www| 北条麻妃国产九九精品视频| 欧美三级中文字幕在线观看| 日本久久91av| 久久伊人一区二区| 在线免费观看黄色小视频| 免费a在线看| 国产裸体无遮挡| 欧美精品国产精品久久久| 色就是色欧美色图| 国产一区日韩| 五月天激情国产综合婷婷婷| 中文字幕第六页| 中文字幕色一区二区| 青青草激情视频| 国产精品香蕉在线观看| 久久99精品久久久久久青青日本| 久久69av| 日韩不卡一区二区| 校园春色另类视频| 欧美伦理影视网| 人人做人人草| 亚洲人妖av一区二区| 欧美日韩电影在线| 一区二区三区回区在观看免费视频| xx免费视频| 黄色网址在线免费看| 人妻少妇精品无码专区二区| 婷婷开心激情综合| 777免费视频| 国产成人麻豆精品午夜在线| 91福利视频网| 国产精品99视频| 色综合久久久| 在线免费看av网站| 国产真实久久| 成r视频免费观看在线播放| 麻豆视频免费在线观看| 午夜老司机精品| 中文字幕日产av| 国产精品无码白浆高潮| 国产激情一区二区三区四区| 免费日韩成人| 麻豆精品不卡国产免费看| 国产福利电影在线| 久久天堂国产精品| 欧美调教在线| 伊人久久在线观看| 欧美精品一区二区三区在线播放| 色综合久久综合网欧美综合网| 欧美性淫爽ww久久久久无| 电影一区二区三区久久免费观看| 超碰在线caoporen| 国产日韩欧美中文在线| 日本中文字幕视频一区| 亚洲男人天堂av在线| 97视频免费在线| 欧美亚洲国产日韩2020| 亚洲黑人在线| 亚洲精品视频免费观看| 亚洲一区二区中文字幕| xxxx在线免费观看| 国产成人激情小视频| 久久中文欧美| 小说区亚洲自拍另类图片专区| 亚洲视频重口味| 国产亚洲综合精品| av电影在线观看网站| 狠狠色狠狠色综合| 成人禁在线观看网站| 久久久久狠狠高潮亚洲精品| 亚洲人精品午夜射精日韩| 密臀av一区二区三区| 91久久久在线| 国产黄色一区| 一区二区三区久久久| 亚洲国产成人综合| 欧美性色xo影院| 国产精品一区二区三区视频网站| 区一区二在线观看| 亚洲欧美日韩高清在线| 欧美高清自拍一区| 一区二区免费在线观看| 99视频免费在线观看| 亚洲黄色三级视频| 成人a级免费视频| 国产欧美亚洲视频| 国产又粗又猛又爽又黄的视频小说| 欧美肉体xxxx裸体137大胆| japanese色国产在线看视频| 激情综合网五月天| 中文在线免费一区三区高中清不卡| www.日本久久久久com.| 色欲久久久天天天综合网| 欧美日韩精品一二三区| a√在线中文网新版址在线| 国产一级免费大片| 亚洲精品自产拍在线观看app| 7799国产精品久久久久99| 欧美日韩精品系列| 午夜精品久久久久久久99热影院| 青青草国产成人99久久| 九色porny丨国产精品| 国产精品网红直播| 日韩视频一区二区在线观看| 蜜臀久久精品久久久用户群体| av在线第一页| 国产麻豆精品入口在线观看| 欧美黑人性猛交xxx| 成人午夜天堂| 日韩免费不卡av| 亚洲视频一区二区| 狠狠色噜噜狠狠狠狠97| 黄页免费在线观看视频| 日韩va亚洲va欧洲va国产| 四虎在线免费看| 亚洲精品综合精品自拍| 欧美一级片在线观看| 国产成人在线视频观看| 亚洲区小说区图片区qvod按摩| www.天堂在线| 国产不卡精品一区二区三区| 久久综合伊人77777|