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

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

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - spring boot實現驗證碼功能

spring boot實現驗證碼功能

2021-04-22 12:17mmp_gaihaoleba Java教程

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。這篇文章主要介紹了spring boot實現驗證碼功能,需要的朋友可以參考下

spring boot是由pivotal團隊提供的全新框架,其設計目的是用來簡化新spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,spring boot致力于在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。

下面通過實例代碼給大家介紹spring boot實現驗證碼功能,具體詳情如下所示:

1.建立工具類,配置驗證碼相關參數

?
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
import java.awt.color; 
import java.awt.font; 
import java.awt.graphics; 
import java.awt.image.bufferedimage; 
import java.util.random; 
/**
 * @author ld
 * @date 2017年11月6日
 * @param
 * @desc 圖形驗證碼生成
 *
 */  
public class verifyutil { 
 // 驗證碼字符集 
  private static final char[] chars = {  
   '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',  
   'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n'
   'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
   'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',  
   'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; 
  // 字符數量 
  private static final int size = 4
  // 干擾線數量 
  private static final int lines = 5
  // 寬度 
  private static final int width = 80
  // 高度 
  private static final int height = 40
  // 字體大小 
  private static final int font_size = 30
  /**
   * 生成隨機驗證碼及圖片
   * object[0]:驗證碼字符串;
   * object[1]:驗證碼圖片。
   */
  public static object[] createimage() { 
   stringbuffer sb = new stringbuffer(); 
   // 1.創建空白圖片 
   bufferedimage image = new bufferedimage( 
     width, height, bufferedimage.type_int_rgb); 
   // 2.獲取圖片畫筆 
   graphics graphic = image.getgraphics(); 
   // 3.設置畫筆顏色 
   graphic.setcolor(color.light_gray); 
   // 4.繪制矩形背景 
   graphic.fillrect(0, 0, width, height); 
   // 5.畫隨機字符 
   random ran = new random(); 
   for (int i = 0; i <size; i++) { 
    // 取隨機字符索引 
    int n = ran.nextint(chars.length); 
    // 設置隨機顏色 
    graphic.setcolor(getrandomcolor()); 
    // 設置字體大小 
    graphic.setfont(new font( 
      null, font.bold + font.italic, font_size)); 
    // 畫字符 
    graphic.drawstring( 
      chars[n] + "", i * width / size, height*2/3); 
    // 記錄字符 
    sb.append(chars[n]); 
   
   // 6.畫干擾線 
   for (int i = 0; i < lines; i++) { 
    // 設置隨機顏色 
    graphic.setcolor(getrandomcolor()); 
    // 隨機畫線 
    graphic.drawline(ran.nextint(width), ran.nextint(height), 
      ran.nextint(width), ran.nextint(height)); 
   
   // 7.返回驗證碼和圖片 
   return new object[]{sb.tostring(), image}; 
  
  /**
   * 隨機取色
   */
  public static color getrandomcolor() { 
   random ran = new random(); 
   color color = new color(ran.nextint(256),  
     ran.nextint(256), ran.nextint(256)); 
   return color; 
  
}

2.接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
@requestmapping(value="/createvalicode",method=requestmethod.get) 
 public void valicode(httpservletresponse response,httpsession session) throws exception{ 
  //利用圖片工具生成圖片 
  //第一個參數是生成的驗證碼,第二個參數是生成的圖片 
  object[] objs = verifyutil.createimage(); 
  //將驗證碼存入session 
  session.setattribute("imagecode",objs[0]); 
  //將圖片輸出給瀏覽器 
  bufferedimage image = (bufferedimage) objs[1]; 
  response.setcontenttype("image/png"); 
  outputstream os = response.getoutputstream(); 
  imageio.write(image, "png", os); 
 }

3.測試頁面調用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!doctype html>
<html>
<head lang="en">
 <meta charset="utf-8" />
 <title>hello</title>
</head>
<body>
 <h1 th:text="${info}" />
 <div>
  <!-- <img alt="這是圖片" src="/img/001.png"/> -->
  <img alt="驗證碼" onclick = "this.src='/iot-frame/createvalicode?' + math.floor(math.random() * 100)" src="/iot-frame/createvalicode" />
 </div>
 <form action="imgvrifycontrollerdefaultkaptcha">
  <input type="text" name="vrifycode" />
  <input type="submit" value="提交"></input>
 </form>
</body>
</html>

總結

以上所述是小編給大家介紹的spring boot實現驗證碼功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://blog.csdn.net/mmp_gaihaoleba/article/details/80005905

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本在线观看视频 | 色戒 完整版 | 色热综合 | 四虎4hu永久免费国产精品 | 热久久最新地址 | 国产成人福利美女观看视频 | 日韩在线视频免费不卡一区 | 国产一区二区三区四 | 亚洲国产99在线精品一区二区 | 女人张开腿 让男人桶个爽 免费观看 | 男女做性视频 | 男人狂躁女人下半身 | 手机看片自拍自自拍日韩免费 | 男女一级特黄a大片 | 日韩高清在线观看 | 大学第一次基本都没了 | 亚洲青草 | a级片在线观看免费 | 91国在线观看 | 国产成人愉拍精品 | 羞羞麻豆国产精品1区2区3区 | 青青草亚洲 | 4虎影视国产在线观看精品 4s4s4s4s色大众影视 | 国产香蕉一区二区在线观看 | www四虎影院| 欧美日韩久久中文字幕 | 国产一级片免费观看 | 4p高h三男一女 | 国产未成女年一区二区 | 欧美xxoo黑人又粗暴 | 日本一区二区三区四区无限 | 9420高清视频在线观看网百度 | 精品视频一区二区三区 | 日本中文字幕黑人借宿影片 | 日韩欧美一区二区在线观看 | 日韩欧美推理片免费在线播放 | 美女mm131爽爽爽久久 | 亚洲欧美国产自拍 | 火影忍者小南裸羞羞漫画 | 91啦在线播放 | 丝袜白浆 |