最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Java工具類(lèi)Hutool實(shí)現(xiàn)驗(yàn)證碼校驗(yàn)功能

 更新時(shí)間:2022年10月15日 10:30:49   作者:愚生淺末  
這篇文章主要介紹了利用Java工具類(lèi)Hutool實(shí)現(xiàn)驗(yàn)證碼校驗(yàn)功能,利用Hutool實(shí)現(xiàn)驗(yàn)證碼校驗(yàn),校驗(yàn)的Servlet與今天的第一篇是一樣的,唯一就是驗(yàn)證碼的生成是不一樣的,利用Hutool生成驗(yàn)證碼更快捷.需要的朋友可以參考下

第一篇是純利用現(xiàn)有JDK提供的繪圖類(lèi)(ImageIO)類(lèi)制作,這個(gè)過(guò)程比較復(fù)雜且需要了解ImageIO類(lèi)。

這一篇文章是利用Hutool工具類(lèi)來(lái)實(shí)現(xiàn)的,該工具類(lèi)已經(jīng)封裝驗(yàn)證碼所需的相關(guān)類(lèi)等,使用起來(lái)較為簡(jiǎn)單和方便。

Hutool工具類(lèi)介紹

Hutool是一個(gè)小而全的Java工具類(lèi)庫(kù),通過(guò)靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率,使Java擁有函數(shù)式語(yǔ)言般的優(yōu)雅,讓Java語(yǔ)言也可以“甜甜的”。

Hutool中的工具方法來(lái)自每個(gè)用戶的精雕細(xì)琢,它涵蓋了Java開(kāi)發(fā)底層代碼中的方方面面,它既是大型項(xiàng)目開(kāi)發(fā)中解決小問(wèn)題的利器,也是小型項(xiàng)目中的效率擔(dān)當(dāng);

  • • Web開(kāi)發(fā)

  • • 與其它框架無(wú)耦合

  • • 高度可替換

Hutool官方網(wǎng)站:https://hutool.cn/

Hutool實(shí)現(xiàn)驗(yàn)證碼生成

利用Hutool實(shí)現(xiàn)驗(yàn)證碼校驗(yàn),校驗(yàn)的Servlet與今天的第一篇是一樣的,唯一就是驗(yàn)證碼的生成是不一樣的。利用Hutool生成驗(yàn)證碼更快捷。

獲取Hutool:

生成驗(yàn)證碼:

設(shè)置驗(yàn)證碼長(zhǎng)、寬、驗(yàn)證碼字符數(shù)、干擾元素個(gè)數(shù):

LineCaptcha?lineCaptcha?=?CaptchaUtil.createLineCaptcha(100,30,4,25);

在頁(yè)面顯示驗(yàn)證碼及保存驗(yàn)證碼內(nèi)容到Session:

????try{
????????lineCaptcha.write(response.getOutputStream());
????????String?code?=?lineCaptcha.getCode();//獲取驗(yàn)證碼內(nèi)容
????????request.getSession().setAttribute("piccode",code);
????????response.getOutputStream().close();
????????}catch?(IOException?e){
????????????e.printStackTrace();
????????}

這個(gè)就實(shí)現(xiàn)了驗(yàn)證碼的生成,相比于第一篇自己制作簡(jiǎn)潔了許多。

完整代碼:

ImageGenerate.java

public?class?ImageGenerate?extends?HttpServlet?{
????public?void?doGet?(HttpServletRequest?request,HttpServletResponse?response)?{
????????LineCaptcha?lineCaptcha?=?CaptchaUtil.createLineCaptcha(100,30,4,25);
????????response.setContentType("image/jpeg");
????????response.setHeader("Pragma",?"No-cache");
????????try{
????????lineCaptcha.write(response.getOutputStream());
????????String?code?=?lineCaptcha.getCode();
????????request.getSession().setAttribute("piccode",code);
????????response.getOutputStream().close();
????????}catch?(IOException?e){
????????????e.printStackTrace();
????????}
????}
}

測(cè)試驗(yàn)證碼生成

還是需要先配置web.xml文件:

?????<servlet>
????????<servlet-name>ImageGenerate</servlet-name>
????????<servlet-class>com.kailong.servlet.ImageGenerate</servlet-class>
????</servlet>
????<servlet-mapping>
????????<servlet-name>ImageGenerate</servlet-name>
????????<url-pattern>/imageGenerate</url-pattern>
????</servlet-mapping>

其他樣式的驗(yàn)證碼

上面展示的驗(yàn)證碼是線段干擾樣式的驗(yàn)證碼,Hutool工具類(lèi)還提供了其他樣式的驗(yàn)證碼:

  • 1. CircleCaptcha -圓圈干擾驗(yàn)證碼

例:

//定義圖形驗(yàn)證碼的長(zhǎng)、寬、驗(yàn)證碼字符數(shù)、干擾元素個(gè)數(shù)
CircleCaptcha?captcha?=?CaptchaUtil.createCircleCaptcha(200,?100,?4,?20);
try{
????lineCaptcha.write(response.getOutputStream());
????String?code?=?lineCaptcha.getCode();//獲取驗(yàn)證碼內(nèi)容
????request.getSession().setAttribute("piccode",code);
????response.getOutputStream().close();
}catch?(IOException?e){
????e.printStackTrace();
}
  • 2. ShearCaptcha 扭曲干擾驗(yàn)證碼

例:

//定義圖形驗(yàn)證碼的長(zhǎng)、寬、驗(yàn)證碼字符數(shù)、干擾線寬度
ShearCaptcha?captcha?=?CaptchaUtil.createShearCaptcha(200,?100,?4,?4);
try{
????lineCaptcha.write(response.getOutputStream());
????String?code?=?lineCaptcha.getCode();//獲取驗(yàn)證碼內(nèi)容
????request.getSession().setAttribute("piccode",code);
????response.getOutputStream().close();
}catch?(IOException?e){
????e.printStackTrace();
}
  • 3. Hutool還提供了自定義驗(yàn)證碼

有時(shí)候標(biāo)準(zhǔn)的驗(yàn)證碼不滿足要求,比如我們希望使用純字母的驗(yàn)證碼、純數(shù)字的驗(yàn)證碼、加減乘除的驗(yàn)證碼,此時(shí)我們就要自定義CodeGenerator

例:

//?自定義純數(shù)字的驗(yàn)證碼(隨機(jī)4位數(shù)字,可重復(fù))
RandomGenerator?randomGenerator?=?new?RandomGenerator("0123456789",?4);
LineCaptcha?lineCaptcha?=?CaptchaUtil.createLineCaptcha(200,?100);
lineCaptcha.setGenerator(randomGenerator);
//?重新生成code
lineCaptcha.createCode();
ShearCaptcha?captcha?=?CaptchaUtil.createShearCaptcha(200,?45,?4,?4);
//?自定義驗(yàn)證碼內(nèi)容為四則運(yùn)算方式
captcha.setGenerator(new?MathGenerator());
//?重新生成code
captcha.createCode();

到此這篇關(guān)于利用Java工具類(lèi)Hutool實(shí)現(xiàn)驗(yàn)證碼校驗(yàn)功能的文章就介紹到這了,更多相關(guān)Hutool生成驗(yàn)證碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于Spring總結(jié)(必看篇)

    關(guān)于Spring總結(jié)(必看篇)

    下面小編就為大家?guī)?lái)一篇關(guān)于Spring總結(jié)(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • RestTemplate發(fā)送form-data請(qǐng)求上傳rul資源文件及對(duì)象參數(shù)方式

    RestTemplate發(fā)送form-data請(qǐng)求上傳rul資源文件及對(duì)象參數(shù)方式

    這篇文章主要介紹了RestTemplate發(fā)送form-data請(qǐng)求上傳rul資源文件及對(duì)象參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • MybatisPlus lambdaQueryWrapper中常用方法的使用

    MybatisPlus lambdaQueryWrapper中常用方法的使用

    本文主要介紹了MybatisPlus lambdaQueryWrapper中常用方法的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java集合框架之Set和Map詳解

    Java集合框架之Set和Map詳解

    大家好,本篇文章主要講的是Java集合框架之Set和Map詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Java實(shí)現(xiàn)給Word文件添加文字水印

    Java實(shí)現(xiàn)給Word文件添加文字水印

    Word中設(shè)置水印時(shí),可預(yù)設(shè)的文字或自定義文字設(shè)置為水印效果,但通常添加水印效果時(shí),會(huì)對(duì)所有頁(yè)面都設(shè)置成統(tǒng)一效果。本文將利用Java給Word每一頁(yè)設(shè)置不同文字水印效果,需要的可以參考一下
    2022-02-02
  • Spring中的ClassPathXmlApplicationContext源碼詳解

    Spring中的ClassPathXmlApplicationContext源碼詳解

    這篇文章主要介紹了Spring中的ClassPathXmlApplicationContext源碼詳解,ApplicationContext的主要實(shí)現(xiàn)類(lèi)是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,前者默認(rèn)從類(lèi)路徑加載配置文件,后者默認(rèn)從文件系統(tǒng)中裝載配置文件,需要的朋友可以參考下
    2023-12-12
  • SpringBoot整合RabbitMQ示例詳解

    SpringBoot整合RabbitMQ示例詳解

    這篇文章主要介紹了SpringBoot整合RabbitMQ示例詳解,RabbitMQ是一個(gè)實(shí)現(xiàn)了AMQP高級(jí)消息隊(duì)列協(xié)議的消息隊(duì)列服務(wù),用Erlang語(yǔ)言。是面向消息的中間件,需要的朋友可以參考下
    2023-07-07
  • Java并發(fā)統(tǒng)計(jì)變量值偏差原因及解決方案

    Java并發(fā)統(tǒng)計(jì)變量值偏差原因及解決方案

    這篇文章主要介紹了Java并發(fā)統(tǒng)計(jì)變量值偏差原因及解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Spring Boot 搭建 ELK正確看日志的配置流程

    Spring Boot 搭建 ELK正確看日志的配置流程

    這篇文章主要介紹了Spring Boot 搭建 ELK正確看日志的配置流程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Springboot使用RabbitMQ實(shí)現(xiàn)關(guān)閉超時(shí)訂單(示例詳解)

    Springboot使用RabbitMQ實(shí)現(xiàn)關(guān)閉超時(shí)訂單(示例詳解)

    介紹了如何在Spring Boot項(xiàng)目中使用RabbitMQ實(shí)現(xiàn)訂單的延時(shí)處理和超時(shí)關(guān)閉,通過(guò)配置RabbitMQ的交換機(jī)、隊(duì)列和綁定關(guān)系,以及編寫(xiě)監(jiān)聽(tīng)方法,實(shí)現(xiàn)了訂單數(shù)據(jù)的發(fā)送和延時(shí)消費(fèi),感興趣的朋友一起看看吧
    2025-01-01

最新評(píng)論

凤城市| 辉县市| 石林| 海原县| 五河县| 陇川县| 保亭| 离岛区| 蛟河市| 五莲县| 二手房| 宜宾县| 芦溪县| 轮台县| 宝应县| 永平县| 洪湖市| 大厂| 贵德县| 黔江区| 伊金霍洛旗| 雷州市| 独山县| 阜新市| 阳春市| 新龙县| 禄劝| 博野县| 聂荣县| 出国| 兴山县| 南丰县| 焉耆| 行唐县| 乳源| 甘德县| 永川市| 高密市| 肃宁县| 安多县| 手游|