国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

Java 生成隨機(jī)驗(yàn)證碼圖片的示例

瀏覽:5日期:2022-08-22 10:44:52

1.情景展示

Java 生成隨機(jī)驗(yàn)證碼圖片的示例

登錄時(shí),生成隨機(jī)驗(yàn)證碼圖片,如何實(shí)現(xiàn)?

2.原因分析

后臺(tái)生成驗(yàn)證碼并生成圖片返回至前臺(tái)

3.解決方案

導(dǎo)包

import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.util.Random;import javax.imageio.ImageIO;import javax.servlet.ServletOutputStream;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletResponse;import org.apache.commons.lang.RandomStringUtils;import base.web.tools.WebUtils;

獲取驗(yàn)證碼請(qǐng)求處理

/** * 獲取驗(yàn)證碼 * @explain * @return 隨機(jī)數(shù)圖片 */public String getImage() { try {int width = 55;int height = 25;// 取得一個(gè)4位隨機(jī)數(shù)字字符串String s = RandomStringUtils.randomNumeric(4);HttpServletResponse response = WebUtils.getResponse();// 存入cookie,用于與用戶的輸入進(jìn)行比較Cookie cookie = new Cookie('validateCode', s);response.addCookie(cookie);response.setContentType('images/jpeg');response.setHeader('Cache-Control', 'no-cache'); ServletOutputStream out = response.getOutputStream();BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);Graphics g = image.getGraphics();// 設(shè)定背景色g.setColor(getRandColor(200, 250));g.fillRect(0, 0, width, height); // 設(shè)置字體Font mFont = new Font('宋體', Font.BOLD, 18);g.setFont(mFont); // 畫邊框// g.setColor(Color.BLACK);// g.drawRect(0, 0, width - 1, height - 1); // 生成隨機(jī)類Random random = new Random();// 將認(rèn)證碼顯示到圖象中g(shù).setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110)));// 將驗(yàn)證碼畫進(jìn)圖片g.drawString(s, 5, 20);// 圖象生效g.dispose();// 輸出圖象到頁面ImageIO.write((BufferedImage) image, 'JPEG', out);out.flush();out.close(); } catch (Exception e) {e.printStackTrace(); } return null;} /** * 給定范圍獲得隨機(jī)顏色 * @explain * @param fc * @param bc * @return */private Color getRandColor(int fc, int bc) { Random random = new Random(); fc = (fc > 255) ? 255 : fc; bc = (bc > 255) ? 255 : bc; // 獲取3次 int r = fc + random.nextInt(bc - fc); int g = fc + random.nextInt(bc - fc); int b = fc + random.nextInt(bc - fc); return new Color(r, g, b);}

html片段

<img src='http://www.cgvv.com.cn/bcjs/<c:url value='/getImage.do'/>' onclick=’sjs()’ />

js片段

function sjs () { // 獲取圖片請(qǐng)求后面加一個(gè)隨機(jī)參數(shù),是為了避免同一個(gè)請(qǐng)求瀏覽器拒絕向服務(wù)器發(fā)送請(qǐng)求的問題(緩存) $('#randomImage')[0].src = baseUrl + '/getImage.do?s=' + Math.random();};

寫在最后

哪位大佬如若發(fā)現(xiàn)文章存在紕漏之處或需要補(bǔ)充更多內(nèi)容,歡迎留言?。。?/p>

本文作者:Marydon

原文鏈接:https://www.cnblogs.com/Marydon20170307/p/12807842.html

以上就是Java 生成隨機(jī)驗(yàn)證碼圖片的示例的詳細(xì)內(nèi)容,更多關(guān)于Java 生成驗(yàn)證碼的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 久久国产精品久久久久久 | 亚洲精品永久一区 | 日本一区二区三区精品视频 | 国产欧美日韩精品a在线观看 | 国产成人a一区二区 | 国产三级网站在线观看 | 久热香蕉在线视频 | 国产一区二区福利久久 | 国产精自产拍久久久久久 | 欧美成人交tv免费观看 | 欧美日韩视频精品一区二区 | aaa毛片免费观看 | 国产大乳喷奶水在线看 | 一级视频免费观看 | 美女黄页在线观看 | 国产精品高清视亚洲精品 | 国产成人无精品久久久 | 成人做爰视频www | 91免费高清视频 | 久久精品免观看国产成人 | 手机看片国产免费永久 | 青青影院一区二区免费视频 | youjizz日韩 | 一级毛片免费播放 | 美女扒开腿让男人桶 | 亚洲国产精品久久久久秋霞不卡 | 国内精品久久久久久网站 | 欧美精品一区二区在线观看播放 | 高清午夜线观看免费 | 99久久精品免费看国产四区 | 成人a视频片在线观看免费 成人a视频在线观看 | 国产乱子伦真实china | 国产com| 手机看成人免费大片 | 国产亚洲人成网站在线观看 | 国产日韩精品在线 | 日本污网站 | 成人区在线观看免费视频 | 全部免费国产潢色一级 | 99re在线精品视频 | 亚洲区精选网址 |