首頁 >Java >java教程 >java產生驗證碼詳細步驟解析

java產生驗證碼詳細步驟解析

Y2J
Y2J原創
2017-05-03 14:03:291834瀏覽

這篇文章主要為大家詳細介紹了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()   

       此方法傳回 Graphics2D,但此處是出於向後相容性的考量。

  
二、取得圖片;

        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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn