一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java實用驗證碼的實現代碼

java實用驗證碼的實現代碼

2020-04-12 16:30小南風 JAVA教程

這篇文章主要為大家介紹了java實用驗證碼的實現代碼,驗證碼實際上就是隨機選擇一些字符以圖片的形式展現在頁面上,感興趣的小伙伴們可以參考一下

本文為大家分享了java實用驗證碼的實現代碼,供大家參考,具體內容如下

1、ValidCode     

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package validImg;
 
import java.awt.Color;
import java.io.IOException;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.github.bingoohuang.patchca.color.ColorFactory;
import com.github.bingoohuang.patchca.custom.ConfigurableCaptchaService;
import com.github.bingoohuang.patchca.filter.predefined.CurvesRippleFilterFactory;
import com.github.bingoohuang.patchca.filter.predefined.DiffuseRippleFilterFactory;
import com.github.bingoohuang.patchca.filter.predefined.DoubleRippleFilterFactory;
import com.github.bingoohuang.patchca.filter.predefined.MarbleRippleFilterFactory;
import com.github.bingoohuang.patchca.filter.predefined.WobbleRippleFilterFactory;
import com.github.bingoohuang.patchca.utils.encoder.EncoderHelper;
import com.github.bingoohuang.patchca.word.RandomWordFactory;
 
public class ValidCode extends HttpServlet {
  private static ConfigurableCaptchaService cs = new ConfigurableCaptchaService();
  private static Random random = new Random();
  static {
//    cs.setColorFactory(new SingleColorFactory(new Color(25, 60, 170)));
  
    cs.setColorFactory(new ColorFactory() {
      @Override
      public Color getColor(int x) {
        int[] c = new int[3];
        int i = random.nextInt(c.length);
        for (int fi = 0; fi < c.length; fi++) {
          if (fi == i) {
            c[fi] = random.nextInt(71);
          } else {
            c[fi] = random.nextInt(256);
          }
        }
        return new Color(c[0], c[1], c[2]);
      }
    });
    RandomWordFactory wf = new RandomWordFactory();
    wf.setCharacters("23456789abcdefghigkmnpqrstuvwxyzABCDEFGHIGKLMNPQRSTUVWXYZ");
    wf.setMaxLength(4);
    wf.setMinLength(4);
    cs.setWordFactory(wf);
  }
 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
 
    switch (random.nextInt(5)) {
    case 0:
      cs.setFilterFactory(new CurvesRippleFilterFactory(cs
          .getColorFactory()));
      break;
    case 1:
      cs.setFilterFactory(new MarbleRippleFilterFactory());
      break;
    case 2:
      cs.setFilterFactory(new DoubleRippleFilterFactory());
      break;
    case 3:
      cs.setFilterFactory(new WobbleRippleFilterFactory());
      break;
    case 4:
      cs.setFilterFactory(new DiffuseRippleFilterFactory());
      break;
    }
    HttpSession session = request.getSession(false);
    if (session == null) {
      session = request.getSession();
    }
    setResponseHeaders(response);
    String token = EncoderHelper.getChallangeAndWriteImage(cs, "png",
        response.getOutputStream());
    session.setAttribute("validCode", token);
    System.out.println("當前的SessionID=" + session.getId() + ",驗證碼= ," + token);
 
  }
 
  protected void setResponseHeaders(HttpServletResponse response) {
    response.setContentType("image/png");
    response.setHeader("Cache-Control", "no-cache, no-store");
    response.setHeader("Pragma", "no-cache");
    long time = System.currentTimeMillis();
    response.setDateHeader("Last-Modified", time);
    response.setDateHeader("Date", time);
    response.setDateHeader("Expires", time);
  }
 
  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
 
  }
 
 
}

2.XML代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<dependency>
  <groupId>com.github.bingoohuang</groupId>
  <artifactId>patchca</artifactId>
  <version>0.0.1</version>
 </dependency>
 
<servlet>
 <servlet-name>ValidCode</servlet-name>
 <servlet-class>validImg.ValidCode</servlet-class>
</servlet>
<servlet-mapping>
 <servlet-name>ValidCode</servlet-name>
 <url-pattern>/validImg.jpg</url-pattern>
</servlet-mapping>

以上就是本文的全部內容,希望對大家的學習有所幫助。

延伸 · 閱讀

精彩推薦
  • JAVA教程詳解Java的設計模式編程中的原型模式

    詳解Java的設計模式編程中的原型模式

    這篇文章主要介紹了Java的設計模式編程中的原型模式,處理對象復制時要特別注意淺拷貝和深拷貝的問題,需要的朋友可以參考下 ...

    卡奴達摩4962020-03-27
  • JAVA教程Java排序算法總結之歸并排序

    Java排序算法總結之歸并排序

    這篇文章主要介紹了Java排序算法總結之歸并排序,較為詳細的分析了歸并排序的原理與java實現技巧,需要的朋友可以參考下 ...

    一羽清寧1882019-12-18
  • JAVA教程java實現模擬RPG格斗

    java實現模擬RPG格斗

    這篇文章主要介紹了java實現模擬RPG格斗,每個英雄具有以下幾個屬性:生命值(為0時英雄倒下)、攻擊力(每次攻擊時扣除對方的生命值點數)、攻擊間...

    hebedich3932019-12-14
  • JAVA教程全方位講解Java的面向對象編程思想

    全方位講解Java的面向對象編程思想

    這篇文章主要介紹了Java的面相對象編程思想,包括類對象方法和封裝繼承多態等各個方面的OOP基本要素,非常推薦,需要的朋友可以參考下 ...

    nisior1782020-03-25
  • JAVA教程JavaMail實現郵件發送的方法

    JavaMail實現郵件發送的方法

    這篇文章主要介紹了JavaMail實現郵件發送的方法,實例分析了java實現郵件發送的相關技巧,非常具有實用價值,需要的朋友可以參考下 ...

    司青4172019-12-16
  • JAVA教程java按鈕控件數組實現計算器界面示例分享

    java按鈕控件數組實現計算器界面示例分享

    本文主要介紹了JAVA通過按鈕數組來管理界面中的所有按鈕控件,從而使用最少的代碼實現模擬的計算器界面 ...

    java教程網4552019-11-08
  • JAVA教程JAVA中AES加密方法實例分析

    JAVA中AES加密方法實例分析

    這篇文章主要介紹了JAVA中AES加密方法,實例分析了java中AES加密與解密的實現技巧,具有一定參考借鑒價值,需要的朋友可以參考下 ...

    鑒客3162019-12-27
  • JAVA教程javaweb實戰之商城項目開發(三)

    javaweb實戰之商城項目開發(三)

    這篇文章主要針對javaweb商城項目開發進行實戰演習,主要實現通用的BaseDao.java和使用resultMap映射關聯對象,感興趣的小伙伴們可以參考一下 ...

    茶飲月4512020-04-03
主站蜘蛛池模板: 精品欧美一区二区三区在线观看 | 窝窝午夜精品一区二区 | 无人区在线观看免费观看 | 男生和老师一起差差差 | 黑人巨大精品战中国美女 | 爱操综合 | 日本一区二区三区久久 | 99国产国人青青视频在线观看 | 西施打开双腿下面好紧 | 欧美日韩亚洲一区二区三区在线观看 | 亚洲色图欧美图片 | 美女被灌浣肠失禁视频 | 精品国产福利在线观看一区 | 成人亚洲欧美日韩在线观看 | www.日日日| 女性性色生活片免费观看 | 国内精品九一在线播放 | 免费午夜网站 | 亚洲精品乱码久久久久久蜜桃 | 色播艾小青国产专区在线播放 | 亚洲成a人片777777久久 | 日韩在线一区二区三区免费视频 | 国产在线观看精品香蕉v区 国产在线观看a | 色综七七久久成人影 | www免费看| 欧美在线欧美 | 手机看片福利盒子久久 | 久久精品国产在热亚洲完整版 | 国产爱啪啪 | 美女脱一净二净不带胸罩 | 视频一区在线观看 | 亚洲国产日韩欧美在线vip1区 | 色综合久久最新中文字幕 | 国产成人精品曰本亚洲78 | 成年人免费在线看的惊悚动作片 | 7777奇米四色 | 农村妇女野外牲交一级毛片 | 欧美日本道免费一区二区三区 | 性欧美xxxxx老太婆 | 我强进了老师身体在线观看 | 动漫美丽妇人1~2在线看 |