<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%
// 在內存中創建圖象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 獲取圖形上下文
Graphics g = image.getGraphics();
//Graphics2D graphics = image.createGraphics();
// 設定背景色
g.setColor(Color.white);
g.fillRect(0, 0, width, height);
//畫邊框
g.setColor(Color.black);
g.drawRect(0,0,width-1,height-1);
// 取隨機產生的認證碼(4位數字)
String rand = request.getParameter("rand");
rand = rand.substring(0,rand.indexOf("."));
switch(rand.length()) {
case 1:
rand = "000"+rand;
break;
case 2:
rand = "00"+rand;
break;
case 3:
rand = "0"+rand;
break;
default:
rand = rand.substring(0,4);
break;
}
// 將認證碼存入SESSION
session.setAttribute("rand",rand);
// 將認證碼顯示到圖象中
g.setColor(Color.black);
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
g.drawString(rand,10,15);
// 隨機產生88個干擾點,使圖象中的認證碼不易被其它程序探測到
Random random = new Random();
for (int i=0;i<88;i++) {
int x = random.nextInt(width);
int y = random.nextInt(height);
g.drawLine(x,y,x,y);
}
// 圖象生效
g.dispose();
// 輸出圖象到頁面
ImageIO.write(image, "JPEG", response.getOutputStream());
%>
關於隨機生成驗證碼的問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
HTML Images - TechGeekBuzz
cloudytechi147
2021-10-16 15:58:01
Nginx+Tomcat的Session集羣與旁掛式memcached實現
小小小平凡
2019-02-23 14:03:52
處理Oracle被鎖住的進程
itserver_live
2019-02-23 13:29:47
spring boot + redis 實現session共享
mengmeng89012
2019-02-23 00:33:40
JS module的導出和導入
KevinYan
2019-02-24 21:34:55
Java-第六章-用for和if-elseif 完整了用戶登錄信息驗證
瘋子偉偉
2019-02-23 00:42:42
二維碼生成
StringLong
2019-02-23 00:41:58
android 控件跟隨手指移動
huangwenwenlili
2019-02-23 00:41:23
Android平臺調用WebService詳解
推薦碼發放
2019-02-24 19:41:33
Spring Cloud Alibaba基礎教程:支持的幾種服務消費方式(RestTemplate、WebClient、Feign)
程序猿dd
2019-02-24 10:41:27
【Go】string 也是引用類型
thinkeridea
2019-02-24 08:04:44
【C++】 淺析深淺拷貝
Vs呂小布
2019-02-23 00:33:40
HOW TO:在圖形用戶介面中查看和轉移 FSMO 角色
lingping
2019-02-23 14:05:54
Windows編程 第五回 GDI初窺
hu_jiacheng
2019-02-23 13:05:18