在JSP頁面上寫隨機的4位數驗證碼
實例化BufferedImage類 得到Graphics畫筆給圖片填充背景色 然後寫上隨機數和100個干擾點
用scropt實現刷新驗證碼
疑問:視頻和書上的DrawString 方法不能用 也不知道怎麼回事 把String轉成了char調用了另外一個drawChars的方法才對
<%@ page language="java" contentType="text/html; charset=GB2312"
import = "java.awt.image.*"
import = "java.util.*"
import = "java.awt.*"
import = "javax.imageio.*"
import = "java.lang.*"
%>
<%
response.setHeader("Cache-Control", "no-cache");
BufferedImage image = new BufferedImage(60, 20, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
g.setColor(new Color(200, 200, 200));
g.fillRect(0, 0, 60, 20);
Random rd = new Random();
int r = rd.nextInt(8999) + 1000;
String rand = String.valueOf(r);
session.setAttribute("rand", rand);
g.setColor(Color.BLACK);
g.setFont(new Font("", Font.PLAIN, 20));
g.drawChars(rand.toCharArray(), 0, rand.length(), 10, 17);
for(int i = 0; i < 100; i++){
int x = rd.nextInt(60);
int y = rd.nextInt(20);
g.drawOval(x, y, 1, 1);
}
ImageIO.write(image, "JPEG", response.getOutputStream());
%>