導航:首頁 > 編程語言 > java驗證碼jsp

java驗證碼jsp

發布時間:2025-08-23 21:04:54

⑴ 驗證碼源代碼,jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.awt.image.BufferedImage"%>
<%@page import="java.awt.Graphics2D"%>
<%@page import="java.awt.Color"%>
<%@page import="java.awt.Font"%>
<%@page import="javax.imageio.ImageIO"%>

<%
int width = 60;
int height = 20;
// 創建具有可訪問圖像數據緩沖區的Image
BufferedImage buffImg = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = buffImg.createGraphics();

// 創建一個隨機數生成器
Random random = new Random();

g.setColor(Color.WHITE);
g.fillRect(0, 0, width, height);

// 創建字體,字體的大小應該根據圖片的高度來定
Font font = new Font("Times New Roman", Font.PLAIN, 18);
// 設置字體
g.setFont(font);

// 畫邊框
g.setColor(Color.BLACK);
g.drawRect(0, 0, width - 1, height - 1);

// 隨機產生160條干擾線
g.setColor(Color.LIGHT_GRAY);
for (int i = 0; i < 160; i++) {
int x = random.nextInt(width);
int y = random.nextInt(height);
int x1 = random.nextInt(12);
int y1 = random.nextInt(12);
g.drawLine(x, y, x + x1, y + y1);
}

// randomCode 用於保存隨機產生的驗證碼
StringBuffer randomCode = new StringBuffer();
int red = 0, green = 0, blue = 0;

// 隨機產生4位數字的驗證碼
for (int i = 0; i < 4; i++) {
// 得到隨機產生的驗證碼數字
String strRand = String.valueOf(random.nextInt(10));

// 產生隨機的顏色分量來構造顏色值
red = random.nextInt(110);
green = random.nextInt(50);
blue = random.nextInt(50);

// 用隨機產生的顏色將驗證碼繪制到圖像中
g.setColor(new Color(red, green, blue));
g.drawString(strRand, 13 * i + 6, 16);

randomCode.append(strRand);
}

// 將四位數字的驗證碼保存到session中
//HttpSession session = request.getSession();
session.setAttribute("randomCode", randomCode.toString());

// 禁止圖像緩存
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);

response.setContentType("image/jpeg");
// 將圖像輸出到servlet輸出流中
ServletOutputStream sos = response.getOutputStream();
ImageIO.write(buffImg, "jpeg", sos);
sos.close();
//sos = null;
out.clear();
out = pageContext.pushBody();
%>

閱讀全文

與java驗證碼jsp相關的資料

熱點內容
全部下載完後進行統一解壓 瀏覽:391
遠嫁的程序員媽媽 瀏覽:551
1024程序員節安全攻防挑戰賽 瀏覽:783
怎麼解除txt加密 瀏覽:768
javahttp流 瀏覽:652
交叉編譯工具前綴是什麼 瀏覽:524
如何往伺服器上寫東西 瀏覽:391
android微信記錄導出助手 瀏覽:187
公交app有什麼優惠 瀏覽:254
python爬蟲存入mysql 瀏覽:490
紅米怎麼加密QQ和微信密碼 瀏覽:589
利用python進行數據分 瀏覽:654
光遇安卓怎麼轉ios教程小米 瀏覽:963
python兒童 瀏覽:44
程序員畢業半年後被辭退 瀏覽:645
開發板系統編譯 瀏覽:395
pdf安裝包下載 瀏覽:50
如何配置foxmail郵箱伺服器 瀏覽:971
python解釋器編譯器源代碼 瀏覽:113
伺服器ip地址正確為什麼連不上 瀏覽:82