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

您的位置:首頁技術文章
文章詳情頁

java后臺驗證碼生成的實現方法

瀏覽:58日期:2022-08-12 16:27:56

效果圖如下:

java后臺驗證碼生成的實現方法

1.適用需求

后臺生成驗證碼,用于登陸驗證。

2. 功能實現所需控件/文件:

無(普通標簽)

3.功能點實現思路

1)前臺思路:

(1)前臺一個<input>用于輸入驗證碼;一個<img>用于展示驗證碼。

(2)驗證碼生成以及展示,點擊刷新功能,可以為<img>綁定click事件。

(3)click事件里面寫ajax請求,通過后臺生成處理好的帶噪點的驗證碼圖片。

注意:后臺直接返回圖片,不是驗證碼的字符!若返回字符,則驗證碼就失去了意義(前臺很容易就可以獲取驗證碼字符,進行多次惡意訪問了)(這點考慮了系統(tǒng)安全性)

(4)關于返回的圖片如何在<img>標簽內展示

直接利用img的src屬性,屬性值為后臺生成驗證碼的方法請求路徑即可。當點擊驗證碼的時候,再動態(tài)設置src屬性即可(原訪問地址+隨機時間戳,防止同一路徑瀏覽器不另作訪問的問題)

前臺部分代碼:

/*驗證碼輸入框*/ <input name='verifyInput' placeholder='請輸入驗證碼'> /*驗證碼圖片*/ <img onclick='changeCode()' src='http://m.b3g6.com/bcjs/getVerifyCode'> //src的getVerifyCode是后臺訪問地址;項目為SSM框架。 /*點擊刷新驗證碼*/ function changeCode(){ var src = 'http://m.b3g6.com/bcjs/ getVerifyCode?'+new Date().getTime(); //加時間戳,防止瀏覽器利用緩存 $(’.verifyCode’).attr('src',src); //jQuery寫法 }

2)后臺思路:

后臺思路很簡單,利用BufferedImage類創(chuàng)建一張圖片,再用Graphics2D對圖片進行繪制(生成隨機字符,添加噪點,干擾線)即可。注意生成的驗證碼字符串要放到session中,用于接下來登陸的驗證碼驗證(當然也是后臺)。

部分代碼如下:

/* 獲取驗證碼圖片*/ @RequestMapping('/getVerifyCode ') public void getVerificationCode(HttpServletResponse response,HttpServletRequest request) { try { int width=200; int height=69; BufferedImage verifyImg=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); //生成對應寬高的初始圖片 String randomText = VerifyCode.drawRandomText(width,height,verifyImg); //單獨的一個類方法,出于代碼復用考慮,進行了封裝。 //功能是生成驗證碼字符并加上噪點,干擾線,返回值為驗證碼字符 request.getSession().setAttribute('verifyCode', randomText); response.setContentType('image/png');//必須設置響應內容類型為圖片,否則前臺不識別 OutputStream os = response.getOutputStream(); //獲取文件輸出流 ImageIO.write(verifyImg,'png',os);//輸出圖片流 os.flush(); os.close();//關閉流 } catch (IOException e) { this.logger.error(e.getMessage()); e.printStackTrace(); } }

/*對圖片進行處理的類和方法*/ public class VerifyCode { public static String drawRandomText(int width,int height,BufferedImage verifyImg) { Graphics2D graphics = (Graphics2D)verifyImg.getGraphics(); graphics.setColor(Color.WHITE);//設置畫筆顏色-驗證碼背景色 graphics.fillRect(0, 0, width, height);//填充背景graphics.setFont(new Font('微軟雅黑', Font.BOLD, 40));//數字和字母的組合String baseNumLetter= = '123456789abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'; StringBuffer sBuffer = new StringBuffer();int x = 10; //旋轉原點的 x 坐標String ch = '';Random random = new Random();for(int i = 0;i < 4;i++){ graphics.setColor(getRandomColor()); //設置字體旋轉角度 int degree = random.nextInt() % 30; //角度小于30度 int dot = random.nextInt(baseNumLetter.length()); ch = baseNumLetter.charAt(dot) + ''; sBuffer.append(ch); //正向旋轉 graphics.rotate(degree * Math.PI / 180, x, 45); graphics.drawString(ch, x, 45); //反向旋轉 graphics.rotate(-degree * Math.PI / 180, x, 45); x += 48;}//畫干擾線for (int i = 0; i <6; i++) { // 設置隨機顏色 graphics.setColor(getRandomColor()); // 隨機畫線 graphics.drawLine(random.nextInt(width), random.nextInt(height), random.nextInt(width), random.nextInt(height));}//添加噪點for(int i=0;i<30;i++){ int x1 = random.nextInt(width); int y1 = random.nextInt(height); graphics.setColor(getRandomColor()); graphics.fillRect(x1, y1, 2,2); }return sBuffer.toString(); } /** * 隨機取色 */ private static Color getRandomColor() {Random ran = new Random();Color color = new Color(ran.nextInt(256),ran.nextInt(256), ran.nextInt(256));return color; }}4.功能實現心得:

驗證碼的功能實現思路很簡單,從系統(tǒng)安全性和代碼復用性這兩點考慮,驗證碼必須后臺生成,生成驗證碼的方法可以封裝到靜態(tài)工具類里。此外,后臺用到許多Java自帶的圖片處理類值得學習。

到此這篇關于java后臺驗證碼生成的實現方法的文章就介紹到這了,更多相關java 驗證碼生成內容請搜索好吧啦網以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品一页| 亚洲欧美网站在线观看| 国产精品中文字幕制服诱惑| 日韩综合一区二区| 国产精品亚洲欧美一级在线| 精品久久网站| 欧美~级网站不卡| 日韩中文字幕麻豆| 一区二区国产在线| 国产精品分类| 91精品国产调教在线观看| 国产农村妇女精品一二区| 日韩久久99| av资源中文在线| 午夜亚洲精品| 国产精品va视频| 国产91一区| 午夜精品影视国产一区在线麻豆| 国产精选一区| 一区二区小说| 欧美欧美黄在线二区| 国产在线一区不卡| 亚洲成人日韩| 日本亚洲欧洲无免费码在线| 六月婷婷综合| 日本亚州欧洲精品不卡| 成人精品久久| 亚州国产精品| 欧美日韩国产v| 日本一区二区三区视频在线看| 精品国产鲁一鲁****| 欧美精品黄色| 免费一区二区三区在线视频| 亚洲激情婷婷| 国产伊人久久| 亚洲麻豆一区| 亚洲五月婷婷| 精品欧美日韩精品| 国产偷自视频区视频一区二区| 国产精品**亚洲精品| 欧美专区一区二区三区| 国产成人精品一区二区免费看京| 久久不射中文字幕| 日韩a一区二区| 日本亚洲不卡| 黄色日韩在线| 成人美女视频| 久久的色偷偷| 亚洲天堂日韩在线| 国产一在线精品一区在线观看| 国产精品亚洲一区二区在线观看| 伊人精品视频| 久久久久国产精品一区三寸| 日韩国产精品久久久久久亚洲| 激情综合网五月| 91亚洲一区| 国产精品久久久久久久久免费高清 | 亚洲性图久久| 日韩一区二区三区免费视频| 国户精品久久久久久久久久久不卡 | 99在线观看免费视频精品观看| 精品国产一区二区三区2021| 石原莉奈在线亚洲三区| 欧美精选视频一区二区| 欧美精品1区| 日韩va亚洲va欧美va久久| 国产精品外国| 中文精品视频| 免费久久久久久久久| 日韩欧美午夜| 成人精品视频| 国产精品色在线网站| 日韩精品亚洲专区在线观看| 蜜臀精品一区二区三区在线观看| 不卡在线一区| 亚洲福利免费| 国产综合色产| 欧美精品九九| 欧美精品一线| 国产视频亚洲| 亚洲女人av| 日韩中文字幕av电影| 中文精品视频| 蜜臀a∨国产成人精品| 性色一区二区| 中文字幕日韩欧美精品高清在线| 欧美午夜不卡影院在线观看完整版免费| 91看片一区| 亚洲午夜黄色| 影音先锋国产精品| 日韩中文字幕一区二区三区| 首页欧美精品中文字幕| 蜜臀久久久99精品久久久久久| 石原莉奈在线亚洲二区| 亚洲一区成人| 亚洲日本国产| 国产亚洲精aa在线看| 久久精品 人人爱| 国产亚洲高清在线观看| 国产精品白丝av嫩草影院| 久久国产精品美女| 精品国产美女a久久9999| 97国产成人高清在线观看| 黄毛片在线观看| 久久精品动漫| 免费视频最近日韩| 国产精品男女| 高清av不卡| 国产麻豆综合| 国产日韩1区| 在线人成日本视频| 日韩视频在线一区二区三区| 亚洲日产国产精品| 麻豆精品少妇| 免费污视频在线一区| 制服诱惑一区二区| 日韩精品亚洲一区二区三区免费| 国产欧美在线观看免费| 给我免费播放日韩视频| 国产精品av一区二区| 亚洲v天堂v手机在线| 麻豆91精品91久久久的内涵| 久久亚洲在线| 日韩欧美2区| 日本欧美国产| 欧美精品一线| 国产精品2区| 激情综合网站| 国产探花在线精品| 欧美日韩精品一区二区视频| 中文字幕av一区二区三区四区| 欧美偷窥清纯综合图区| 黑森林国产精品av| 日韩在线观看一区二区| 国产高清亚洲| 91久久国产| 国产高清日韩| 不卡在线一区| 国产精品22p| 日韩午夜高潮| 麻豆一区二区三| 一区免费视频| 成人在线视频区| 亚洲精品中文字幕99999| www.51av欧美视频| 少妇精品久久久一区二区| 国产在线日韩精品| 三级亚洲高清视频| 人在线成免费视频| 日本午夜精品视频在线观看| 久久久久网站| 国产精品欧美大片| 性色av一区二区怡红| 国产美女高潮在线观看| 日本特黄久久久高潮| 在线成人直播| 国产精品毛片久久| 欧美日韩中出| 蜜臀久久99精品久久久久宅男 | 五月精品视频| 国产精品www994| 快she精品国产999| 欧美三区四区| 久久一区亚洲| 日本三级亚洲精品| 久久国产精品毛片| 日韩av一级| 久久久久久亚洲精品美女| 久久亚洲色图| 午夜国产一区二区| 97国产成人高清在线观看| 欧美一区二区三区免费看| 久久视频国产| 国产中文欧美日韩在线| 国产精品亚洲一区二区在线观看| 蜜臀久久久久久久| 欧美特黄一区| 欧美日韩中文字幕一区二区三区 | 久久精品国产久精国产爱| 日本在线视频一区二区| 午夜亚洲福利在线老司机| 在线视频观看日韩| 日韩大片免费观看| 日本精品黄色| 国产va免费精品观看精品视频| 国产精品最新| 日韩av一区二区三区四区| 亚洲精品欧洲| 日韩精品午夜视频| 亚洲理论在线| 亚洲视频电影在线| 亚洲三级观看| 日韩一区二区三区精品 | 亚洲一区成人| 亚洲综合另类| 蜜臀国产一区二区三区在线播放 | 精品视频在线一区二区在线| 国产精品视频3p| 国产精品mv在线观看| 国产精品66|