VerifyCodeServlet(一次性驗(yàn)證碼)
通過在表單中總是需要使用一次性驗(yàn)證碼,這一問題可以使用VerifyCodeServlet來處理。讓<img>元素的src指向VerifyCodeServlet即可在頁面中生成一次性驗(yàn)證碼。而且VerifyCodeServlet還會(huì)把驗(yàn)證碼保存到session中,名稱為:vCode,也就是說,你可以通過session來獲取驗(yàn)證碼文本:session.getAttribute(“vCode”)。
web.xml
<servlet> <servlet-name>VerifyCodeServlet</servlet-name> <servlet-class>cn.itcast.vcode.servlet.VerifyCodeServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>VerifyCodeServlet</servlet-name> <url-pattern>/VerifyCodeServlet</url-pattern> </servlet-mapping>
MyJsp.jsp
<form action="<c:url value='/UserServlet'/>" method="post"> <input type="hidden" name="method" value="regist"/> 驗(yàn)證碼:<input type="text" name="verifyCode"/> <!--讓<img>的src指向VerifyCodeServlet即可生成一次性驗(yàn)證碼--> <img src="<c:url value='/VerifyCodeServlet'/>" border="1"/><br/> <input type="submit" value="注冊(cè)"/> </form>
因?yàn)橛脩艨赡芸床磺宄D片上的文本,所以我們需要給用戶提供一個(gè)“換一張”超鏈接。其實(shí)實(shí)現(xiàn)這一步很簡(jiǎn)單,只需要使用javascript讓<img>元素src指向VerifyCodeServlet即可。但因?yàn)闉g覽器可能會(huì)緩存上一次生成的圖片,所以我們還需要使用時(shí)間為參數(shù)“強(qiáng)迫”瀏覽器訪問服務(wù)器,而不是使用緩存。
MyJsp.jsp
<script type="text/javascript" src="<c:url value='/js/jquery-1.5.1.js'/>"></script>
<script type="text/javascript">
//在點(diǎn)擊“換一張”時(shí)會(huì)調(diào)用本方法
function change() {
$("#img").attr("src", "<c:url value='/VerifyCodeServlet?'/>" + new Date().getTime());//指定<img>元素的src屬性值為VerifyCodeServlet,并且追加參數(shù)為當(dāng)前時(shí)間毫秒,它是不會(huì)重復(fù)的值,所以瀏覽器不會(huì)使用緩存,而是訪問服務(wù)器。
}
</script>
…
<form action="<c:url value='/UserServlet'/>" method="post">
<input type="hidden" name="method" value="regist"/>
驗(yàn)證碼:<input type="text" name="verifyCode"/>
<!-- 指定id為img,方法使用jquery來查找該元素-->
<img id="img" src="<c:url value='/VerifyCodeServlet'/>" border="1"/>
<a href="javascript:change();" rel="external nofollow" >換一張</a><!--點(diǎn)擊該超鏈接會(huì)調(diào)用change()方法-->
<br/>
<input type="submit" value="注冊(cè)"/>
</form>
當(dāng)用戶在表單中填寫了驗(yàn)證碼,而且提交了表單,到達(dá)UserServlet的regist()方法,在regist() 方法中需要比較用戶在表單中輸入的驗(yàn)證碼,與驗(yàn)證碼圖片上的文本是否相同。
獲取用戶輸入的驗(yàn)證碼:request.getParameter(“verifyCode”);
獲取圖片上的驗(yàn)證碼:session.getAttribute(“vCode”);
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java8 實(shí)現(xiàn)提取集合對(duì)象的每個(gè)屬性
這篇文章主要介紹了java8 實(shí)現(xiàn)提取集合對(duì)象的每個(gè)屬性方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02
springboot中使用undertow踩坑記(最新推薦)
這篇文章主要介紹了springboot中使用undertow踩坑記,springboot內(nèi)置類web中間件,將web服務(wù)器管理權(quán)交給了容器,本文分步驟給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
SpringBoot Starter依賴原理與實(shí)例詳解
SpringBoot中的starter是一種非常重要的機(jī)制,能夠拋棄以前繁雜的配置,將其統(tǒng)一集成進(jìn)starter,應(yīng)用者只需要在maven中引入starter依賴,SpringBoot就能自動(dòng)掃描到要加載的信息并啟動(dòng)相應(yīng)的默認(rèn)配置。starter讓我們擺脫了各種依賴庫的處理,需要配置各種信息的困擾2022-09-09
Springboot與vue實(shí)例講解實(shí)現(xiàn)前后端分離的人事管理系統(tǒng)
這篇文章主要介紹了如何用Java實(shí)現(xiàn)企業(yè)人事管理系統(tǒng),文中采用springboot+vue實(shí)現(xiàn)前后端分離,感興趣的小伙伴可以學(xué)習(xí)一下2022-06-06
Spring Boot中使用Spring-data-jpa的配置方法詳解
今天小編就為大家分享一篇關(guān)于Spring Boot中使用Spring-data-jpa的配置方法詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03
基于Java驗(yàn)證jwt token代碼實(shí)例
這篇文章主要介紹了基于Java驗(yàn)證jwt token代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12

