servlet向瀏覽器輸出驗證碼圖片,註冊頁面的<img> 標籤的src屬性只需要指向該servlet即可
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//通知瀏覽器不要緩存圖片
response.setHeader("Expires", "-1");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
//通知瀏覽器以圖片方式打開
response.setHeader("Content-type", "image/jpeg");
//在內存中創建一張圖片
BufferedImage image = new BufferedImage(100, 20, BufferedImage.TYPE_INT_RGB);
//得到圖片
Graphics2D g = (Graphics2D) image.getGraphics();
<span style="white-space:pre"> </span>//設置背景色
g.setColor(Color.WHITE);
g.fillRect(0, 0, 100, 20);
//向圖片上寫數據
g.setColor(Color.GRAY);
g.setFont(new Font(null,Font.BOLD,20));
g.drawString(makeNum(), 0, 20);
//寫到瀏覽器
ImageIO.write(image, "jpg", response.getOutputStream());
}
private String makeNum() {
Random r = new Random();
String num = r.nextInt(9999) + "";
for (int i = 0; i < 4 - num.length(); i++)
{
num += r.nextInt(9) ;
}
return num;
}