国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

服務器之家 - 編程語言 - Java教程 - 圖片驗證碼概述及實現步驟

圖片驗證碼概述及實現步驟

2020-07-24 13:44小偽桑 Java教程

本文主要介紹了圖片驗證碼概述及實現步驟。具有一定的參考價值,下面跟著小編一起來看下吧

一. 圖片驗證碼概述:

很多網站都有該實現

作用:

為了提高系統的安全性

有了驗證碼,我們就可以要求用戶在輸入用戶名,密碼等信息后,同時輸入圖片上的文字,用戶提交后,系統會首先從session中提取剛剛生成的驗證碼,并和用戶輸入的驗證碼進行比較,如果比較相等,表示用戶是從登錄界面登錄過來的,否則,表示用戶是非法的,我們使用驗證碼,是確保系統的使用必須要進行登錄成功之后,才能使用,避免用戶直接在地址欄中輸入要訪問的頁面。

也就是說,使用驗證碼,就強制用戶用戶必須先從登錄界面登錄

. 驗證實現方式

用到兩個關鍵類,這兩個類跟圖片的輸出是有關系的

?
1
2
3
4
5
BufferedImage im = new BufferedImage(60,20,BufferedImage.TYPE_INT_RGB);
//第一個參數im表示一個圖片對象
//JPG表示圖片輸出類型
//response.getOutputStream()代表一個響應的輸出流,也就是說,你訪問這個servlet.該servlet就會圖片顯示給你
ImageIO.write(im, "JPG",response.getOutputStream());

. 實現步驟

1.使用BufferedImage產生一個圖片,然后使用ImageIO輸出,并指定為JPG格式

?
1
2
3
4
5
BufferedImage im = new BufferedImage(60,20,BufferedImage.TYPE_INT_RGB);
//第一個參數im表示一個圖片對象
//JPG表示圖片輸出類型
//response.getOutputStream()代表一個響應的輸出流,也就是說,你訪問這個servlet.該servlet就會圖片顯示給你
ImageIO.write(im, "JPG",response.getOutputStream());

2.獲取圖片繪圖對象

Graphics g = im.getGraphics();

3.填充繪圖區域

?
1
2
3
4
5
Random rm = new Random();
Color c = new Color(rm.nextInt(255),rm.nextInt(255),rm.nextInt(255));
g.setColor(c);
//填充整個圖片的顏色
g.fillRect(0, 0, 60, 20);

4.向圖片中輸出數字

?
1
2
3
g.setColor(new Color(rm.nextInt(255),rm.nextInt(255),rm.nextInt(255)));
g.setFont(new Font("華文隸書",Font.BOLD|Font.ITALIC,28));
g.drawString("8", 1, 18);

5.隨機4位數字

?
1
2
3
4
5
6
//隨機產生4位數字
for(int i=0;i<4;i++){
 g.setColor(new Color(rm.nextInt(255),rm.nextInt(255),rm.nextInt(255)));
 g.setFont(new Font("Gungsuh",Font.BOLD|Font.ITALIC,22));
 g.drawString(""+rm.nextInt(10), (i*15)+2, 18);
}

6.隨機產生中文

?
1
2
3
4
5
6
String str = "胸有激雷而面如平湖者可拜上將軍";
for(int i=0;i<4;i++){
 g.setColor(new Color(rm.nextInt(255),rm.nextInt(255),rm.nextInt(255)));
 g.setFont(new Font("Gungsuh",Font.BOLD|Font.ITALIC,15));
 g.drawString(""+str.charAt(rm.nextInt(str.length())), (i*15)+2, 18);
}

7.在頁面中如何來引入該驗證碼:

  1. <img alt="驗證碼" src="/ImageServlet"

8.保存數字,以便進行登錄比較

?
1
2
//將得到的四個數字保存到session中,以便當用戶登錄的時候,用來比較
request.getSession().setAttribute("piccode", sbf.toString());

9.登錄驗證

首先,需要驗證該用戶在數據庫中是否存在,如果存在,還需要驗證輸入的驗證碼是否一致.

驗證成功后,需要轉發到相關的操作頁面.

代碼實例:

?
1
2
3
4
5
6
7
8
9
10
11
12
boolean b_exist = login.validate(username,passwd);
//如果該用戶存在
if(b_exist){
 String pic = ""+request.getSession().getAttribute("piccode");
 //比較驗證碼
 if(!pic.equals("") && pic.equals(code)){
 //向session中存入用戶信息,以供其他中來使用
 request.getSession().setAttribute("username", username);
 
 response.sendRedirect("index.jsp");
 }
}

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持服務器之家!

原文鏈接:http://www.cnblogs.com/liu321kai/p/6257131.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美色欧美亚洲另类七区 | 一特黄a大片免费视频 视频 | 精品亚洲永久免费精品 | 欧美一区二区黄 | 91精品国产一区二区三区香蕉 | 成人免费av | 黄色成人在线 | 久久久久久久成人 | 在线中文字幕视频 | 不卡av电影在线观看 | 成人一级黄色大片 | 一区二区不卡视频 | 中文字幕精品一区 | 久久久久久免费毛片精品 | 在线观看视频91 | 亚洲福利电影网 | 亚洲日日摸夜夜夜夜夜爽小说 | 日本欧美在线 | 91精品国产一区二区三区四区在线 | 亚洲视频免费观看 | 夜夜草视频 | 97热在线观看 | 国产欧美日韩一区二区三区 | 亚洲成av人影片在线观看 | 国产综合精品 | 懂色一区二区三区av片 | 亚洲午夜精品片久久www慈禧 | 一本色道久久综合狠狠躁篇的优点 | 国产精品亚洲一区二区三区在线 | 成人精品视频在线观看 | 自拍偷拍亚洲欧美 | 一本亚洲 | 伊人最新网址 | 精品96久久久久久中文字幕无 | yy6080久久伦理一区二区 | 天天射天天干 | 久久综合久 | www.av在线播放| 国产精品久久久久久吹潮 | 黄色一级片a | 午夜精品视频 |