久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

java生成圖片驗證碼

 印度阿三17 2020-02-24

最近在用ssm框架做一個管理系統(tǒng),,做到登錄驗證時,,使用了下面的代碼生成圖片驗證碼,最終的效果如下圖,。

Java類
[AppleScript]?純文本查看?復(fù)制代碼 ?
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 public class RandomValidateCode { ????public static final String RANDOMCODEKEY = "randomcode_key";//放到session中的key ????private Random random = new Random(); ????private String randString = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//隨機(jī)產(chǎn)生的字符串 ? ????private int width = 80;//圖片寬 ????private int height = 26;//圖片高 ????private int lineSize = 40;//干擾線數(shù)量 ????private int stringNum = 4;//隨機(jī)產(chǎn)生字符數(shù)量 ? ????/** ?????* 生成隨機(jī)圖片 ?????*/ ????public void getRandcode(HttpServletRequest request, ????????????????????????????HttpServletResponse response) { ????????HttpSession session = request.getSession(); ????????//BufferedImage類是具有緩沖區(qū)的Image類,Image類是用于描述圖像信息的類 ????????BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR); ????????//產(chǎn)生Image對象的Graphics對象,改對象可以在圖像上進(jìn)行各種繪制操作 ????????Graphics g = image.getGraphics(); ????????g.fillRect(0, 0, width, height); ????????g.setFont(new Font("Times New Roman",Font.ROMAN_BASELINE,18)); ????????g.setColor(getRandColor(160, 200)); ????????//繪制干擾線 ????????for(int i=0;i<=lineSize;i ){ ????????????drowLine(g); ????????} ????????//繪制隨機(jī)字符 ????????String randomString = ""; ????????for(int i=1;i<=stringNum;i ){ ????????????randomString=drowString(g,randomString,i); ????????} ????????session.removeAttribute(RANDOMCODEKEY); ????????session.setAttribute(RANDOMCODEKEY, randomString); ????????g.dispose(); ????????try { ????????????//將內(nèi)存中的圖片通過流動形式輸出到客戶端 ????????????ImageIO.write(image, "JPEG", response.getOutputStream()); ????????} catch (Exception e) { ????????????e.printStackTrace(); ????????} ????} ????/* ?????* 獲得字體 ?????*/ ????private Font getFont(){ ????????return new Font("Fixedsys",Font.CENTER_BASELINE,18); ????} ????/* ?????* 獲得顏色 ?????*/ ????private Color getRandColor(int fc,int bc){ ????????if(fc > 255) ????????????fc = 255; ????????if(bc > 255) ????????????bc = 255; ????????int r = fc random.nextInt(bc-fc-16); ????????int g = fc random.nextInt(bc-fc-14); ????????int b = fc random.nextInt(bc-fc-18); ????????return new Color(r,g,b); ????} ? ????/* ?????* 繪制字符串 ?????*/ ????private String drowString(Graphics g,String randomString,int i){ ????????g.setFont(getFont()); ????????g.setColor(new Color(random.nextInt(101),random.nextInt(111),random.nextInt(121))); ????????String rand = String.valueOf(getRandomString(random.nextInt(randString.length()))); ????????randomString =rand; ????????g.translate(random.nextInt(3), random.nextInt(3)); ????????g.drawString(rand, 13*i, 16); ????????return randomString; ????} ????/* ?????* 繪制干擾線 ?????*/ ????private void drowLine(Graphics g){ ????????int x = random.nextInt(width); ????????int y = random.nextInt(height); ????????int xl = random.nextInt(13); ????????int yl = random.nextInt(15); ????????g.drawLine(x, y, x xl, y yl); ????} ????/* ?????* 獲取隨機(jī)的字符 ?????*/ ????public String getRandomString(int num){ ????????return String.valueOf(randString.charAt(num)); ????} }

Controller
[AppleScript]?純文本查看?復(fù)制代碼 ?
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 @RequestMapping(value="/checkCode") ???public void checkCode(HttpServletRequest request, HttpServletResponse response) ???????????throws ServletException, IOException { ???????//設(shè)置相應(yīng)類型,告訴瀏覽器輸出的內(nèi)容為圖片 ???????response.setContentType("image/jpeg"); ? ???????//設(shè)置響應(yīng)頭信息,告訴瀏覽器不要緩存此內(nèi)容 ???????response.setHeader("pragma", "no-cache"); ???????response.setHeader("Cache-Control", "no-cache"); ???????response.setDateHeader("Expire", 0); ? ???????RandomValidateCode randomValidateCode = new RandomValidateCode(); ???????try { ???????????randomValidateCode.getRandcode(request, response);//輸出圖片方法 ???????} catch (Exception e) { ???????????e.printStackTrace(); ???????} ???}

前端jsp頁面表單,,顯示驗證碼
[HTML]?純文本查看?復(fù)制代碼 ?
01 02 03 04 05 06 07 08 09 10 11 12 13 <div class="layui-form-item"> ??????????????<div class="layui-row"> ??????????????????<div class="layui-col-xs7"> ??????????????????????<label class="layadmin-user-login-icon layui-icon layui-icon-vercode" for="LAY-user-login-vercode"></label> ??????????????????????<input type="text" name="code" id="LAY-user-login-vercode" lay-verify="required" placeholder="圖形驗證碼" class="layui-input"> ??????????????????</div> ??????????????????<div class="layui-col-xs5"> ??????????????????????<div style="margin-left: 10px;"> ??????????????????????????<img src="${pageContext.request.contextPath}checkCode" class="layadmin-user-login-codeimg" id="LAY-user-get-vercode" alt=""> ??????????????????????</div> ??????????????????</div> ??????????????</div> ??????????</div>
來源:https://www./content-1-639201.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多