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

kaptcha驗證碼使用方法詳解

 更新時間:2018年12月07日 11:22:41   作者:實踐不斷改變思想  
這篇文章主要為大家詳細(xì)介紹了kaptcha驗證碼的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文為大家分享了kaptcha驗證碼的使用方法,供大家參考,具體內(nèi)容如下

1.首先在pom.xml文件中導(dǎo)入Maven依賴

<dependency>
  <groupId>com.github.penggle</groupId>
  <artifactId>kaptcha</artifactId>
  <version>2.3.2</version>
</dependency>

2.在web.xml文件中配置一個servlet

<servlet>
 <!-- 生成圖片的Servlet -->
 <servlet-name>Kaptcha</servlet-name>
 <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
 <!-- 是否有邊框 -->
 <init-param> 
        <param-name>kaptcha.border</param-name>
 <param-value>no</param-value>
 </init-param>
 <!-- 字體顏色 -->
 <init-param>
   <param-name>kaptcha.textproducer.font.color</param-name>
 <param-value>red</param-value>
 </init-param>
 <!-- 圖片寬度 -->
 <init-param>
 <param-name>kaptcha.image.width</param-name>
 <param-value>135</param-value>
 </init-param>
 <!-- 使用哪些字符生成驗證碼 -->
 <init-param>
 <param-name>kaptcha.textproducer.char.string</param-name>
  <param-value>ACDEFHKPRSTWX345679</param-value>
 </init-param>
 <!-- 圖片高度 -->
 <init-param>
  <param-name>kaptcha.image.height</param-name>
  <param-value>50</param-value>
 </init-param>
 <!-- 字體大小 -->
 <init-param>
  <param-name>kaptcha.textproducer.font.size</param-name>
  <param-value>43</param-value>
 </init-param>
 <!-- 干擾線的顏色 -->
 <init-param>
  <param-name>kaptcha.noise.color</param-name>
  <param-value>black</param-value>
 </init-param>
 <!-- 字符個數(shù) -->
 <init-param>
  <param-name>kaptcha.textproducer.char.length</param-name>
  <param-value>4</param-value>
 </init-param>
 <!-- 使用哪些字體 -->
 <init-param>
  <param-name>kaptcha.textproducer.font.names</param-name>
  <param-value>Arial</param-value>
 </init-param>
 </servlet>
 <!-- 映射的url -->
 <servlet-mapping>
 <servlet-name>Kaptcha</servlet-name>
 <url-pattern>/Kaptcha</url-pattern>
 </servlet-mapping>

3.頁面代碼如下

<div class="item-inner">
 <label for="j_captcha" class="item-title label">驗證碼</label>
 <input id="j_captcha" name="j_captcha" type="text" 
  class="form-control in" placeholder="驗證碼" />
 <div class="item-input">
   <img id="captcha_img" alt="點擊更換" title="點擊更換"
         onclick="changeVerifyCode(this)" src="../Kaptcha" />
 </div>
</div>

向后端提交數(shù)據(jù)

var verifyCodeActual = $('#j_captcha').val();
 if (!verifyCodeActual) {
  $.toast('請輸入驗證碼!');
  return;
 }
 formData.append("verifyCodeActual", verifyCodeActual);

4.js交互

function changeVerifyCode(img) {
 img.src = "../Kaptcha?" + Math.floor(Math.random() * 100);
}

5.后端驗證

import javax.servlet.http.HttpServletRequest;

public class CodeUtil {
 public static boolean checkVerifyCode(HttpServletRequest request) {
 String verifyCodeExpected = (String) request.getSession().getAttribute(
  com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
 String verifyCodeActual = HttpServletRequestUtil.getString(request,
  "verifyCodeActual");
 if (verifyCodeActual == null
  || !verifyCodeActual.equalsIgnoreCase(verifyCodeExpected)) {
  return false;
 }
 return true;
 }
}
import javax.servlet.http.HttpServletRequest;

public class HttpServletRequestUtil {
 public static int getInt(HttpServletRequest request, String name) {

 try {
  return Integer.decode(request.getParameter(name));
 } catch (Exception e) {
  return -1;
 }
 }

 public static long getLong(HttpServletRequest request, String name) {

 try {
  return Long.valueOf(request.getParameter(name));
 } catch (Exception e) {
  return -1;
 }
 }

 public static Double getDouble(HttpServletRequest request, String name) {

 try {
  return Double.valueOf(request.getParameter(name));
 } catch (Exception e) {
  return -1d;
 }
 }

 public static Boolean getBoolean(HttpServletRequest request, String name) {

 try {
  return Boolean.valueOf(request.getParameter(name));
 } catch (Exception e) {
  return false;
 }
 }

 public static String getString(HttpServletRequest request, String name) {
 try {
  String result = request.getParameter(name);
  if (result != null) {
  result = result.trim();
  }
  if ("".equals(result))
  result = null;
  return result;
 } catch (Exception e) {
  return null;
 }

 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Json字符串與Object、List、Map的互轉(zhuǎn)工具類

    Json字符串與Object、List、Map的互轉(zhuǎn)工具類

    今天小編就為大家分享一篇關(guān)于Json字符串與Object、List、Map的互轉(zhuǎn)工具類,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • JDK8時間相關(guān)類超詳細(xì)總結(jié)(含多個實例)

    JDK8時間相關(guān)類超詳細(xì)總結(jié)(含多個實例)

    jdk1.8的一些新特性簡化了代碼的寫法,減少了部分開發(fā)量,下面這篇文章主要給大家介紹了關(guān)于JDK8時間相關(guān)類超詳細(xì)總結(jié),文中包含了多個實例代碼,需要的朋友可以參考下
    2023-01-01
  • Javaweb開發(fā)中通過Servlet生成驗證碼圖片

    Javaweb開發(fā)中通過Servlet生成驗證碼圖片

    這篇文章主要為大家詳細(xì)介紹了Javaweb開發(fā)中通過Servlet生成驗證碼圖片的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Mybatis?在?insert?插入操作后返回主鍵?id的操作方法

    Mybatis?在?insert?插入操作后返回主鍵?id的操作方法

    這篇文章主要介紹了Mybatis?在?insert?插入操作后返回主鍵?id的操作方法,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • @OneToMany查詢陷入循環(huán)引用的解決方案

    @OneToMany查詢陷入循環(huán)引用的解決方案

    這篇文章主要介紹了@OneToMany查詢陷入循環(huán)引用的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java實現(xiàn)生成自定義時長的靜音音頻

    Java實現(xiàn)生成自定義時長的靜音音頻

    這篇文章主要介紹了如何通過Java實現(xiàn)一個音頻工具類,可以實現(xiàn)生成一段自定義時長(精確到毫秒)的wav音頻。感興趣的小伙伴可以了解一下
    2022-01-01
  • Eclipse快捷鍵使用小結(jié)

    Eclipse快捷鍵使用小結(jié)

    Eclipse是用java的同行必不可少的工具,我總結(jié)了一下它的快捷鍵,太常用的ctrl+單擊、ctrl+shift+F、Ctrl+1等我就不細(xì)說了,主要是方便查看。下邊小編就詳細(xì)的為大家介紹一下
    2013-07-07
  • Java 線程的生命周期完整實例分析

    Java 線程的生命周期完整實例分析

    這篇文章主要介紹了Java 線程的生命周期,結(jié)合完整實例形式分析了java線程周期相關(guān)的加鎖、釋放鎖、阻塞、同步等原理與操作技巧,需要的朋友可以參考下
    2019-10-10
  • MyBatis中的properties配置(推薦)

    MyBatis中的properties配置(推薦)

    這篇文章給大家介紹了MyBatis中的properties配置,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-12-12
  • Java面試Socket編程常用參數(shù)設(shè)置源碼問題分析

    Java面試Socket編程常用參數(shù)設(shè)置源碼問題分析

    這篇文章主要為大家介紹了Java編程中關(guān)于Socket結(jié)構(gòu)分析,常用參數(shù)設(shè)置源碼示例以及面試中的問題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-03-03

最新評論

井冈山市| 博罗县| 台山市| 石棉县| 铁力市| 花莲市| 丰城市| 莆田市| 涟源市| 宜川县| 天镇县| 仙游县| 科尔| 磴口县| 汝州市| 拜城县| 沅陵县| 尤溪县| 商南县| 竹山县| 弥渡县| 鄄城县| 繁峙县| 九龙城区| 宜丰县| 蓬溪县| 泸水县| 乡城县| 铁岭市| 衡山县| 皋兰县| 姜堰市| 景泰县| 舒城县| 宜昌市| 阿尔山市| 长岛县| 思南县| 桂林市| 河西区| 和顺县|