Java隨機生成圖片與HTML表單中的驗證碼實現
Java隨機生成圖片
用Java語言生成一個帶有字串文字的圖片總結來說只需要如下四步:
- 1.建立圖片緩衝區
- 2.設定圖片緩衝區的寬高及儲存圖片的型別
- 3.得到這個圖片的繪製環境(拿到畫筆)
- 4.將圖片儲存起來
程式碼如下:
//第一、二步,傳入引數為緩衝區寬、高、儲存圖片型別
BufferedImage image=new BufferedImage(width1,height1,BufferedImage.TYPE_INT_RGB);
//第三步,得到繪製環境(需要用到Graphics類)
Graphics paint=image.getGraphics();
paint.setColor(Color.WHITE);//設定畫筆顏色為白色
paint.fillRect(start,end,width2,height2);//繪製矩形並填充,將圖片緩衝區的(start,end)座標作為繪製圖片的左上角座標,繪製圖片寬為width2、高為height2
paint.setColor(Color.RED);//設定畫筆顏色為紅色
paint.drawString(str,x,y);//設定需要繪製在圖片上的文字,引數為字串、字串所在的x座標和y座標
//第四步,將圖片儲存起來(需要用到ImageIO類)
ImageIO.write(image,"JPEG",out);//引數為圖片緩衝區、圖片型別、輸出流
通過以上程式碼便可實現用java語言生成一個簡易的帶有字串文字的圖片,具體實現如下,首先在IDEA中建立VerifyCode.java類:
有錯誤,請將g.drawStrig(sb.toString(),width/4,height-5);改為g.drawString(str,i*width/4,height-5);
通過程式碼VerifyCode vc=new VerifyCode();
建立VerifyCode物件後就可以呼叫上述所有方法便可以實現隨機驗證碼的圖片了。
在HTML表單中實現驗證碼
借用上篇Java Web學習筆記之session入門中的儲存使用者登入資訊案例中的程式碼,新增:
- VerifyServlet.java:生成圖片,儲存圖片上的文字到session域中,將圖片響應給客戶端。
- LoginServlet.java中新增作用:判斷使用者輸入的驗證碼是否正確,若正確則跳轉至下一連結,若錯誤則儲存錯誤資訊到request域中,然後請求轉發至login.jsp登入頁面。
程式碼如下圖:
<div align="center">VerifyServlet.java</div>
<div align="center">LoginServlet.java</div>
<div align="center">login.jsp(用到了javascript語法來更換驗證碼)</div>
10月8日更正:途中的js程式碼有錯誤,將"ducument"改為"document"。
通過如上程式碼便可實現HTML中的驗證碼效果。
2018.3.19更
歡迎加入我的Java交流1群:659957958。群裡目前已有1800人,每天都非常活躍,但為了篩選掉那些不懷好意的朋友進來搞破壞,所以目前入群方式已改成了付費方式,你只需要支付9塊錢,即可獲取到群檔案中的所有乾貨以及群裡面各位前輩們的疑惑解答;為了鼓勵良好風氣的發展,讓每個新人提出的問題都得到解決,所以我將得到的入群收費收入都以紅包的形式發放到那些主動給新手們解決疑惑的朋友手中。在這裡,我們除了談技術,還談生活、談理想;在這裡,我們為你的學習方向指明方向,為你以後的求職道路提供指路明燈;在這裡,我們把所有好用的乾貨都與你分享。還在等什麼,快加入我們吧!
2018.4.21更:如果群1已滿或者無法加入,請加Java學習交流2群:305335626 。群2作為群1的附屬群,除了日常的技術交流、資料分享、學習方向指明外,還會在每年網際網路的秋春招時節在群內釋出大量的網際網路內推方式,話不多說,快上車吧!
聯絡
If you have some questions after you see this article,you can tell your doubts in the comments area or you can find some info by clicking these links.
相關文章
- Django登入(含隨機生成圖片驗證碼)註冊例項Django隨機
- golang 生成圖片驗證碼Golang
- 應用:隨機生成驗證碼隨機
- 【Javascript + Vue】實現隨機生成迷宮圖片JavaScriptVue隨機
- java視窗登入介面實現隨機驗證碼Java隨機
- 【日常筆記】生成驗證碼圖片筆記
- java圖形驗證碼實現Java
- node實現登入圖片驗證碼
- 短視訊商城系統,通過Java實現圖片驗證碼,點選重新整理圖片驗證碼Java
- 分享一個圖片驗證碼功能的實現
- HTML 表單驗證概述HTML
- 隨機生成一個指定長度的驗證碼隨機
- PHP實現隨機數字、字母的驗證碼功能PHP隨機
- Java之生成一個隨機驗證碼(數字+大小寫字母)Java隨機
- Python PIL模組隨機生成中文驗證碼Python隨機
- 5種PHP生成圖片驗證碼例項PHP
- 【例項】使用GD庫生成圖片驗證碼
- 隨機驗證碼隨機
- 校驗碼圖片生成
- 登陸介面模組解析——生成圖片驗證碼
- 純CSS實現表單驗證CSS
- 短視訊開發,生成隨機的驗證碼數字隨機
- 圖片驗證碼 CaptchaAPT
- 圖片驗證碼介面
- 實現elementUI表單的全域性驗證UI
- 【工具篇】在.Net中實現HTML生成圖片或PDF的幾種方式HTML
- PostgreSQL 生成隨機數字、字串、日期、驗證碼以及 UUIDSQL隨機字串UI
- TP6實現前後端分離的圖片驗證碼,驗證碼以介面形式返回後端
- 利用jQuery實現表單驗證功能jQuery
- Flutter 生成圖形驗證碼Flutter
- SpringBoot + Spring Security 學習筆記(三)實現圖片驗證碼認證Spring Boot筆記
- 利用tesseract解析簡單數字驗證碼圖片
- 一步一步生成滑動驗證碼圖片
- Springboot +redis+⾕歌開源Kaptcha實現圖片驗證碼功能Spring BootRedisAPT
- 短視訊直播系統,接收到產生驗證碼請求時隨機生成驗證碼隨機
- 十位隨機驗證碼隨機
- .Net WebAPI 生成圖形驗證碼WebAPI
- 圖形驗證碼設計實現