這篇文章主要為大家詳細介紹了java產生驗證碼的步驟總結,需要的朋友可以參考下
1、serialVersionUID
private static final long serialVersionUID = -8501285780349046114L;
Java的序列化機制是透過在執行時間判斷類別的serialVersionUID來驗證版本一致性的。
相當於java類別的身分證。主要用於版本控制。
2、BufferedImage類別
——BufferedImage 子類別描述具有可存取影像資料緩衝區的 Image。
TYPE_INT_RGB
以影像,它為 8 位元合成整數像素的 RGB 色彩成分。
——getGraphics()
# 此方法返回 Graphics2D,但此處是出於向後相容性的考量。
3、request.getParameter()
request.getParameter() 方法傳遞的數據,會從Web客戶端傳到Web伺服器端,代表HTTP請求資料。
request.getParameter()方法傳回String類型的資料。
4、String... excludeProperty表示不定參數,也就是呼叫這個方法的時候這裡可以傳入多個String物件(可變參數:適用於參數個數不確定,類型確定的情況,java把可變參數當做數組處理。
5、Graphics類
Graphics 類別是所有圖形上下文的抽象基類,允許應用程式在元件(已在各種裝置上實現)以及閉螢幕影像上進行繪製。
【步驟】:
一、在記憶體中建立一張圖片;
BufferedImage bi = new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);
-BufferedImage 子類別描述具有可存取影像資料緩衝區的Image。
TYPE_INT_RGB 表示一個影像,它具有合成整數像素的 8 位元 RGB 色彩分量。
-getGraphics()
二、取得圖片;
Graphics g = bi.getGraphics();三、設定圖片的背景色彩;
setBackGround(g);
四、設定圖片的邊框;
setBorder(g);
五、在圖片上畫出幹擾線;
drawRandomLine(g);
六、寫在圖片上隨機數;
String random = drawRandomNum((Graphics2D) g,createTypeFlag);//根据客户端传递的createTypeFlag
七、將隨機數存在session中;
request.getSession().setAttribute("checkcode",random);
八、設定回應頭通知瀏覽器以圖片的形式開啟;
response.setContentType("image/jpeg");//等同于res[onse.setHeader("Content-Type","image/jpeg");
# 九、設定回應頭控制瀏覽器不要快取;
response.setDateHeader("expries",-1); response.setHeader("Cache-Control","no-cache"); response.setHeader("Pragma","no-cache");-setDateHeader
public void setDateHeader(java.lang.String name,long date)name - the name of the header to set
date - the assigned date value
-setHeader
public void setHeader(java.lang.String name, java.lang.String value)
- the name of the header
value - the header value If it contains octet string, it should be encoded according to RFC 2047 (http://www.
十、寫圖片給瀏覽器;
ImageIO.write(bi,"jpg",response.getOutputStream());
-參數:
以 String為格式為非正式名稱的 String。
output - 寫入資料所寫入資料的 OutputStream。
拋出:
#
IOException - 若寫入過程中錯誤。
#以上是java產生驗證碼詳細步驟解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!