日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼

瀏覽:111日期:2022-08-15 16:18:33

java動(dòng)態(tài)實(shí)現(xiàn)驗(yàn)證碼,供大家參考,具體內(nèi)容如下

【實(shí)現(xiàn)效果】

點(diǎn)擊圖片或者文字可以更換驗(yàn)證碼 驗(yàn)證碼隨機(jī)生成,由大小寫字母和數(shù)字組成 驗(yàn)證碼字體顏色隨機(jī)生成,字母角度有偏轉(zhuǎn) 干擾線隨機(jī)分布

java實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼

java實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼

驗(yàn)證碼的功能: 防止惡意的表單注冊(cè)

VerificationCode.java 驗(yàn)證碼功能實(shí)現(xiàn)

package com.iqqcode.servlet.checkcode;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.awt.*;import java.awt.image.BufferedImage;import java.io.IOException;import java.util.Random;/** * @Author: Mr.Q * @Date: 2020-02-12 10:12 * @Description:驗(yàn)證碼生成 */@WebServlet('/VerificationCode')public class VerificationCode extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int width = 120; int height = 50; //1.創(chuàng)建對(duì)象,驗(yàn)證碼圖片對(duì)象 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //2.美化圖片 //2.1填充背景色 //Graphics g = image.getGraphics(); Graphics2D g = (Graphics2D) image.getGraphics();//畫(huà)筆對(duì)象,2D來(lái)旋轉(zhuǎn)驗(yàn)證碼字母 g.setColor(Color.WHITE);//設(shè)置畫(huà)筆顏色 g.fillRect(0, 0, width, height); //2.2畫(huà)邊框 g.setColor(Color.BLUE); g.drawRect(0, 0, width - 1, height - 1); //2.3生成驗(yàn)證碼 String str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; //生成隨機(jī)角標(biāo) Random random = new Random(); //改變字體 g.setFont(new Font('宋體',Font.BOLD,35)); //將驗(yàn)證碼偏轉(zhuǎn)并寫到畫(huà)布上 for (int i = 1; i <= 4; i++) { int x = width/5 * i; int y = height/2; String msg = ''; int index = random.nextInt(str.length()); //獲取字符 char ch = str.charAt(index);//隨機(jī)字符 //獲取正負(fù)30的角度 int angle = random.nextInt(60) - 30; double radian = angle * Math.PI/180; //設(shè)置驗(yàn)證碼中的字體顏色 //g.setColor(Color.BLUE); int red = 0; int green = 0; int blue = 0; int codeY = 32; // 得到隨機(jī)產(chǎn)生的驗(yàn)證碼數(shù)字 // 產(chǎn)生隨機(jī)的顏色分量來(lái)構(gòu)造顏色值,使輸出的每位數(shù)字的顏色值都不同 red = random.nextInt(255); green = random.nextInt(255); blue = random.nextInt(255); // 用隨機(jī)產(chǎn)生的顏色將驗(yàn)證碼繪制到圖像中 g.setColor(new Color(red, green, blue)); //寫驗(yàn)證碼 g.rotate(radian, x, y); //把字母畫(huà)在畫(huà)布上 //g.drawString(ch+'', x, y); g.drawString(String.valueOf(ch)+'', x, codeY); //把每次旋轉(zhuǎn)的再旋轉(zhuǎn)回來(lái) g.rotate(-radian, x, y); //每次向右移動(dòng)20像素 x += 15; msg += ch; } //2.4隨機(jī)產(chǎn)生20條干擾線,使圖象中的認(rèn)證碼不易被其它程序探測(cè)到 g.setColor(Color.MAGENTA); //隨機(jī)生成坐標(biāo)點(diǎn) for (int i = 0; i < 20; i++) { int x1 = random.nextInt(width); int x2 = random.nextInt(width); int y1 = random.nextInt(height); int y2 = random.nextInt(height); g.drawLine(x1, x2, y1, y2); } //3.將圖片輸出到頁(yè)面展示 //將圖片對(duì)象寫入流中 ImageIO.write(image, 'jpg', response.getOutputStream()); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); }}insex.jsp 前臺(tái)頁(yè)面展示

分析:

點(diǎn)擊超鏈接或者圖片,需要換一張 給超鏈接和圖片綁定單擊事件 重新設(shè)置圖片的src屬性值

生成的圖片先要緩存在本地,每次請(qǐng)求是不會(huì)修改,所以驗(yàn)證碼圖片不會(huì)切換;將圖片路徑后添加時(shí)間戳,通過(guò)錯(cuò)誤的路徑來(lái)欺騙服務(wù)器重新請(qǐng)求

<%@ page contentType='text/html;charset=UTF-8' language='java' %><html><head> <title>驗(yàn)證碼</title> <script> window.onload = function () { //1.獲取圖片對(duì)象 var img = document.getElementById('checkCode'); //2.綁定圖片單擊事件 img.onclick = function () { //加時(shí)間戳 var date = new Date().getTime(); //加時(shí)間戳,防止瀏覽器利用緩存 img.src = 'http://m.b3g6.com/ServletResponse/VerificationCode?' + date; } //綁定鏈接點(diǎn)擊事件 var ahref = document.getElementById('change'); ahref.onclick = function () { var date = new Date().getTime(); img.src = 'http://m.b3g6.com/ServletResponse/VerificationCode?' + date; } } </script></head><body><h2>驗(yàn)證碼動(dòng)態(tài)實(shí)現(xiàn)</h2><img src='http://m.b3g6.com/ServletResponse/VerificationCode'><a href='http://m.b3g6.com/bcjs/5074.html'>看不清?換一張</a></body></html>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人羞羞视频播放网站| 亚洲精品在线a| 亚洲激情久久| 美女视频网站久久| 欧美日一区二区在线观看| 天堂精品久久久久| 人人精品久久| 免费一级欧美片在线观看网站| 麻豆一区二区三| 国产美女精品视频免费播放软件| 视频一区中文字幕| 亚洲制服一区| 欧美日一区二区在线观看| 国产91欧美| 鲁大师影院一区二区三区| 日本综合视频| 亚洲大全视频| 国产精品任我爽爆在线播放 | 欧美日韩国产综合网| 日韩一区精品视频| 国产精品7m凸凹视频分类| 久久av综合| 国产在线欧美| 激情亚洲影院在线观看| 红杏一区二区三区| 亚洲精品乱码| 999久久久91| 欧美国产一级| 国产精品www994| 国产成人免费| 欧美 日韩 国产一区二区在线视频 | 日韩一区二区三区高清在线观看 | 免费看日韩精品| 精品免费视频| 精品欧美日韩精品| 一区二区三区四区日韩| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品蜜月aⅴ在线| 国产精品视频一区二区三区| 国产精品久久久久77777丨| 视频国产精品| 亚洲欧洲av| 国产精品亚洲欧美一级在线| 欧美搞黄网站| 国产精品久久久久久久久久白浆 | 牛牛精品成人免费视频| 国产激情精品一区二区三区| 国产成年精品| 激情偷拍久久| 日韩中文字幕无砖| 色婷婷综合网| 欧美一级一区| 欧洲激情综合| 日韩欧美中文字幕在线视频| 四虎成人av| 精品福利久久久| 欧美三级精品| 欧美国产视频| 亚洲一区二区三区中文字幕在线观看| se01亚洲视频| 久久精品99国产精品日本| 中文在线不卡| 视频一区二区三区中文字幕| 久久一级电影| 久久精品亚洲| 日韩黄色大片| 亚洲激情中文在线| 日韩欧美2区| 欧美精品中文字幕亚洲专区| 欧美日韩一视频区二区| 欧美一区=区三区| 亚洲视频二区| 日本三级亚洲精品| 亚洲一级特黄| 亚洲深夜视频| 国产精品嫩草99av在线| 国产传媒在线| 久久99视频| 欧美日韩午夜电影网| 日韩精品欧美| 国产66精品| 一本大道色婷婷在线| 日韩三区在线| 99riav1国产精品视频| 麻豆精品网站| 欧美日韩午夜电影网| 欧美成人高清| 日韩激情精品| 精品视频自拍| 88久久精品| 国产精品尤物| 日韩在线短视频| 欧美在线观看天堂一区二区三区| 天堂久久一区| 欧美亚洲国产日韩| 国产精品99久久免费| 成人三级高清视频在线看| 青草国产精品| 在线日韩视频| 国产一区二区三区亚洲| 日韩 欧美一区二区三区| 免费在线小视频| 国产精品久久亚洲不卡| 好看的av在线不卡观看| 精品久久久中文字幕| 中文字幕日本一区| 在线成人动漫av| 一区三区视频| 国产中文一区| 欧美日韩夜夜| 国产精品三上| 日韩啪啪电影网| 日韩av影院| 国产伦精品一区二区三区千人斩| 久久wwww| 国产欧美丝祙| 国产精品一区二区精品视频观看| 石原莉奈在线亚洲三区| 亚州av日韩av| 国产福利片在线观看| 亚洲资源在线| 免费精品国产的网站免费观看| 综合亚洲色图| 91精品在线观看国产| 日韩午夜精品| 国产精品99久久精品| 日韩精品久久理论片| 亚洲免费婷婷| 伊人久久av| 日本视频一区二区| 亚洲人成网站在线在线观看| 欧美成人基地 | 综合国产精品| 婷婷亚洲五月| 成人羞羞在线观看网站| 美女国产精品久久久| 国产亚洲第一伦理第一区| 欧美日韩国产综合网| 最新中文字幕在线播放| 久久精品二区亚洲w码| 日韩国产一二三区| 亚洲1区在线观看| 在线亚洲观看| 亚洲精品欧美| 日韩av午夜在线观看| 亚洲有吗中文字幕| 日韩一区二区三区精品 | 亚洲精品自拍| 亚洲精品在线a| 视频一区二区不卡| 亚洲人亚洲人色久| 日韩欧美中文字幕一区二区三区| 久久国产中文字幕| japanese国产精品| 日本不卡一二三区黄网| 日韩精品五月天| 免费亚洲一区| 精品国产欧美日韩一区二区三区| 亚洲精品88| 中文一区一区三区免费在线观 | 国产精品日韩| 欧美日韩在线二区| 日本一二区不卡| 91看片一区| 婷婷精品在线观看| 在线日韩电影| 嫩呦国产一区二区三区av| 亚洲va中文在线播放免费| 欧美在线网站| 精品亚洲二区| 久久国际精品| 色婷婷色综合| 国产一区清纯| 欧美一区91| 男人的天堂亚洲一区| 国产精品腿扒开做爽爽爽挤奶网站| 综合国产精品| 黄色在线一区| 三级在线观看一区二区| 久久99视频| 三级一区在线视频先锋| 免费在线看一区| 91精品久久久久久久久久不卡| 国产精品视频一区二区三区综合| 欧美一级二级视频| 久久精品亚洲| 国产精品自拍区| 国产一区2区在线观看| 久久久成人网| 国产农村妇女精品一二区| 在线亚洲成人| 麻豆成人综合网| 色爱av综合网| 欧美一区自拍| 久久国产日韩| 亚洲午夜黄色| 久久久精品午夜少妇| 久久精品国产久精国产| 日韩av一区二区三区| 久久不卡国产精品一区二区|