為什么要添加驗證碼?
為了防止重復提交表單,給服務器造成壓力
需要的工具 : kaptcha-2.3.2.jar idea2019.3
谷歌驗證碼 封裝好的servlet類
首先匯入jar包
匯入完成之后 可以直接在web.xml進行配置
配置代碼如下:
<servlet>
<servlet-name>KaptchaServlet</servlet-name>
<servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>KaptchaServlet</servlet-name>
<url-pattern>/kaptcha.jpg</url-pattern>
</servlet-mapping>
如果添加完成之后 重新部署 直接訪問之后 就會得到一個驗證碼圖片
效果如圖;

問題來了?
得到圖片之后 怎么獲取 里面的字符
該工具會在登錄后臺 或者 注冊后臺 設定一個session 通過 id可以取出 value 值
// 獲取Session中的驗證碼
String token = (String) req.getSession().getAttribute(KAPTCHA_SESSION_KEY);
// 洗掉 Session中的驗證碼
req.getSession().removeAttribute(KAPTCHA_SESSION_KEY);
其中 KAPTCHA_SESSION_KEY是常量 固定ID
其中原理是 當我們請求服務器之后 通過session 得到值 之后 立馬洗掉session 為下一次請求做準備
這樣就防止多次請求
之后 獲取 發送的 驗證碼 進行 比對
正確之后 進行下一步操作 不正確 回傳頁面 回顯錯誤資訊
String code = req.getParameter("code");
//檢查驗證碼有否有問題
if (token != null && token.equalsIgnoreCase(code)) {
}else{
}
如何在jsp頁面中顯示驗證碼圖片呢
利用 img src 屬性
<img id="img_check" src="kaptcha.jpg" width="80px" height="40px" >
其中 src中放的 正是請求servlet的地址 便可獲取到圖片
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/124937.html
標籤:其他
上一篇:Python的運行方法
