1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          captcha驗證碼怎么輸入(SpringBoot如何使用Kaptcha實現驗證碼的生成與驗證功能)

          來源:互聯網轉載 時間:2024-05-01 13:35:01

          當我們在項目中登錄使用驗證碼的時候,不妨試試Kaptcha生成驗證碼,非常簡單

          1、首先,我們在pom.xml文件中引入kaptcha的maven依賴

          <!--kaptcha驗證碼--><dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version></dependency>

          2、然后,我們編寫kaptcha的配置類:KaptchaConfig.java

          packagecom.lzzy.meet.common.kaptcha;importcom.google.code.kaptcha.impl.DefaultKaptcha;importcom.google.code.kaptcha.util.Config;importlombok.extern.slf4j.Slf4j;importorg.springframework.context.annotation.Bean;importorg.springframework.stereotype.Component;importjava.util.Properties;/***@ClassNameKaptchaConfig*kaptcha配置類*@Author*@Date2019-09-0513:50:50*@Version1.0**/@Slf4j@ComponentpublicclassKaptchaConfig{@BeanpublicDefaultKaptchagetKaptcheCode(){DefaultKaptchadefaultKaptcha=newDefaultKaptcha();Propertiesproperties=newProperties();properties.setProperty("kaptcha.border","no");properties.setProperty("kaptcha.textproducer.font.color","black");properties.setProperty("kaptcha.image.width","100");properties.setProperty("kaptcha.image.height","36");properties.setProperty("kaptcha.textproducer.font.size","30");properties.setProperty("kaptcha.obscurificator.impl","com.google.code.kaptcha.impl.ShadowGimpy");properties.setProperty("kaptcha.session.key","code");properties.setProperty("kaptcha.noise.impl","com.google.code.kaptcha.impl.NoNoise");properties.setProperty("kaptcha.background.clear.from","232,240,254");properties.setProperty("kaptcha.background.clear.to","232,240,254");properties.setProperty("kaptcha.textproducer.char.length","4");properties.setProperty("kaptcha.textproducer.font.names","彩云,宋體,楷體,微軟雅黑");Configconfig=newConfig(properties);defaultKaptcha.setConfig(config);returndefaultKaptcha;}}

          3、接下來,我們編寫kaptcha的控制層:KaptchaController.java

          packagecom.lzzy.meet.common.kaptcha;importcom.google.code.kaptcha.Constants;importcom.google.code.kaptcha.Producer;importlombok.extern.slf4j.Slf4j;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestMapping;importjavax.imageio.ImageIO;importjavax.servlet.ServletOutputStream;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.awt.image.BufferedImage;/***@ClassNameKaptchaController*kaptcha調用*@Author*@Date2019-09-0513:59:59*@Version1.0**/@Slf4j@Controller@RequestMapping("kaptcha")publicclassKaptchaController{@AutowiredprivateProducerproducer;@GetMapping("kaptcha-image")publicvoidgetKaptchaImage(HttpServletRequestrequest,HttpServletResponseresponse)throwsException{response.setDateHeader("Expires",0);response.setHeader("Cache-Control","no-store,no-cache,must-revalidate");response.addheader("Cache-Control","post-check=0,pre-check=0");response.setHeader("Pragma","no-cache");response.setContentType("image/jpeg");StringcapText=producer.createText();log.info("******************當前驗證碼為:{}******************",capText);//將驗證碼存于session中request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY,capText);BufferedImagebi=producer.createImage(capText);ServletOutputStreamout=response.getOutputStream();//向頁面輸出驗證碼ImageIO.write(bi,"jpg",out);try{//清空緩存區out.flush();}finally{//關閉輸出流out.close();}}}

          4、然后,我們就可以在前端調用katpcha的接口生成驗證碼了:

          <imgth:src="@{/kaptcha/kaptcha-image}"class="ver_btn"onclick="this.src=this.src+'?c='+Math.random();"/>

          由于我這里使用的是 thymeleaf 模板引擎,所以路徑名稱會有點奇怪,生成的驗證碼樣式如圖所示:

          5、最后,我們將用戶在客戶端登陸時輸入的驗證碼傳送到服務端進行驗證:

          /***驗證驗證碼*@param*@return正確:true/錯誤:false*/publicstaticbooleanvalidate(StringregisterCode){//獲取Session中驗證碼Objectcaptcha=ServletUtils.getAttribute(Constants.KAPTCHA_SESSION_KEY);//判斷驗證碼是否為空if(StringUtils.isempty(registerCode)){returnfalse;}//校驗驗證碼的正確與否booleanresult=registerCode.equalsIgnoreCase(captcha.toString());if(result){//正確了后,將驗證碼從session中刪掉ServletUtils.getRequest().getSession().removeAttribute(Constants.KAPTCHA_SESSION_KEY);}//返回驗證結果returnresult;}

          到此,相信大家對“SpringBoot如何使用Kaptcha實現驗證碼的生成與驗證功能”有了更深的了解,不妨來實際操作一番吧!這里是本站網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          農行卡顯示維護是什么意思?中國農業銀行卡顯示和維護通常是指中國農業銀行的后臺系統正在進行維護和升級。在系統維護期間,無法在線查詢和處理任何電子業務。如果不是緊急業務,您可以等待系統更新和升級。系統升級所需的時間不能保證,需要根據實際情況確定。如果是緊急業務,您可以直接到中國農業銀行的柜臺進行處理。農業銀行通用k寶怎么充電?如果是一體化通用K寶,使用數據連接線連接K寶與電腦即可進行充電,K寶是中國農...

          三類股東是什么意思?三類股東指的是契約型私募基金、資產管理計劃、信托計劃。而三類股東企業是指直接或間接投資人中有三類股東的企業。三類股東開展業務的話,一般是以管理人的身份。不過在開展業務期間,也會存在一些問題,比如信息披露、核查缺乏第三方證據、稅收等。不出資可以成為股東嗎?一般情況下,成為公司的股東是需要出資的,只不過出資方式有可能不同,有用貨幣出資的,也可以用實物、知識產權、土地使用權等可以用貨...

          (資料圖片)在生活中,很多人都不知道頑物喪志是什么意思是什么意思,其實他的意思是非常簡單的,下面就是小編搜索到的頑物喪志是什么意思相關的一些知識,我們一起來學習下吧!應該是玩物喪志。意思:常用來指醉心于某些自己所喜好的事物,從而喪失了積極進取的志氣。出處:《書·旅獒》:“玩人喪德,玩物喪志?!彼未祆?《近思錄》卷二:“ 明道先生 以記誦博識為玩物喪志?!闭Z法:連動式,作謂語、賓語、定語,多含貶義...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>