欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java生成驗(yàn)證碼步驟歸納總結(jié)

 更新時(shí)間:2017年04月20日 10:52:34   作者:Anonymous_5  
這篇文章主要為大家詳細(xì)介紹了java生成驗(yàn)證碼的步驟總結(jié),需要的朋友可以參考下

1、serialVersionUID

    private static final long serialVersionUID = -8501285780349046114L;

    Java的序列化機(jī)制是通過在運(yùn)行時(shí)判斷類的serialVersionUID來驗(yàn)證版本一致性的。

    相當(dāng)于java類的身份證。主要用于版本控制。

2、BufferedImage類

    ——BufferedImage 子類描述具有可訪問圖像數(shù)據(jù)緩沖區(qū)的 Image。
 

   TYPE_INT_RGB 

          表示一個(gè)圖像,它具有合成整數(shù)像素的 8 位 RGB 顏色分量。

    ——getGraphics() 

          此方法返回 Graphics2D,但此處是出于向后兼容性的考慮。

3、request.getParameter()

request.getParameter() 方法傳遞的數(shù)據(jù),會(huì)從Web客戶端傳到Web服務(wù)器端,代表HTTP請(qǐng)求數(shù)據(jù)。

request.getParameter()方法返回String類型的數(shù)據(jù)。

4、String... excludeProperty表示不定參數(shù),也就是調(diào)用這個(gè)方法的時(shí)候這里可以傳入多個(gè)String對(duì)象(可變參數(shù):適用于參數(shù)個(gè)數(shù)不確定,類型確定的情況,java把可變參數(shù)當(dāng)做數(shù)組處理。

注意:可變參數(shù)必須位于最后一項(xiàng)eg: private String drawRandomNum(Graphics2D g,String... createTypeFlag))

5、Graphics類   

Graphics 類是所有圖形上下文的抽象基類,允許應(yīng)用程序在組件(已經(jīng)在各種設(shè)備上實(shí)現(xiàn))以及閉屏圖像上進(jìn)行繪制。

【步驟】:

    一、在內(nèi)存中創(chuàng)建一張圖片;
      

  BufferedImage bi = new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);

  ——BufferedImage 子類描述具有可訪問圖像數(shù)據(jù)緩沖區(qū)的 Image。      

        TYPE_INT_RGB   表示一個(gè)圖像,它具有合成整數(shù)像素的 8 位 RGB 顏色分量。

 ——getGraphics()   

       此方法返回 Graphics2D,但此處是出于向后兼容性的考慮。

   二、得到圖片;

        Graphics g = bi.getGraphics();

    三、設(shè)置圖片的背景色;

        setBackGround(g);

    四、設(shè)置圖片的邊框;

        setBorder(g);

    五、在圖片上畫干擾線;

        drawRandomLine(g);

    六、寫在圖片上隨機(jī)數(shù);

        String random = drawRandomNum((Graphics2D) g,createTypeFlag);//根據(jù)客戶端傳遞的createTypeFlag

    七、將隨機(jī)數(shù)存在session中;

        request.getSession().setAttribute("checkcode",random);

    八、設(shè)置響應(yīng)頭通知瀏覽器以圖片的形式打開;

        response.setContentType("image/jpeg");//等同于res[onse.setHeader("Content-Type","image/jpeg");

    九、設(shè)置響應(yīng)頭控制瀏覽器不要緩存;

  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)
  

          Parameters:

                   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)

            Parameters:
 

               name - the name of the header

                value - the header value If it contains octet string, it should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)

    十、將圖片寫給瀏覽器;

        ImageIO.write(bi,"jpg",response.getOutputStream());

           ——參數(shù):

                im - 要寫入的 RenderedImage。

                formatName - 包含格式非正式名稱的 String。

                output - 將在其中寫入數(shù)據(jù)的 OutputStream。

                    拋出: 

                IllegalArgumentException - 如果任何參數(shù)為 null。 

                IOException - 如果在寫入過程中發(fā)生錯(cuò)誤。     

希望本篇文章對(duì)您有所幫助

相關(guān)文章

  • SpringBoot Starter機(jī)制及整合tomcat的實(shí)現(xiàn)詳解

    SpringBoot Starter機(jī)制及整合tomcat的實(shí)現(xiàn)詳解

    這篇文章主要介紹了SpringBoot Starter機(jī)制及整合tomcat的實(shí)現(xiàn),我們知道SpringBoot自己在“后臺(tái)”幫我們配置了很多原本需要我們手動(dòng)去的東西,至于這個(gè)“后臺(tái)”是啥,就是Starter機(jī)制
    2022-09-09
  • Java基礎(chǔ)知識(shí)之ByteArrayOutputStream流的使用

    Java基礎(chǔ)知識(shí)之ByteArrayOutputStream流的使用

    這篇文章主要介紹了Java基礎(chǔ)知識(shí)之ByteArrayOutputStream流的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring超詳細(xì)講解IOC與解耦合

    Spring超詳細(xì)講解IOC與解耦合

    IoC就是比方說有一個(gè)類,我們想要調(diào)用類里面的方法(不是靜態(tài)方法),就要?jiǎng)?chuàng)建該類的對(duì)象,使用對(duì)象調(diào)用方法來實(shí)現(xiàn)。但對(duì)于Spring來說,Spring創(chuàng)建對(duì)象的過程,不是在代碼里面實(shí)現(xiàn)的,而是交給Spring來進(jìn)行配置實(shí)現(xiàn)的
    2022-08-08
  • 通過Maven進(jìn)行jedis連接redis的實(shí)現(xiàn)

    通過Maven進(jìn)行jedis連接redis的實(shí)現(xiàn)

    這篇文章主要介紹了通過Maven進(jìn)行jedis連接redis的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Spring中的Devtools源碼解析

    Spring中的Devtools源碼解析

    這篇文章主要介紹了Spring中的Devtools源碼解析,Spring中的Devtools是一個(gè)開發(fā)工具,旨在提高開發(fā)人員的生產(chǎn)力和開發(fā)體驗(yàn),它提供了一系列功能,包括自動(dòng)重啟、熱部署、遠(yuǎn)程調(diào)試等,使開發(fā)人員能夠更快速地進(jìn)行代碼修改和調(diào)試,需要的朋友可以參考下
    2023-10-10
  • Java利用位運(yùn)算實(shí)現(xiàn)加減乘除的方法詳解

    Java利用位運(yùn)算實(shí)現(xiàn)加減乘除的方法詳解

    我們經(jīng)常使用的加減乘除,我們所看到的只是表面的效果,那么加減乘除在底層究竟是怎么實(shí)現(xiàn)的?今天就讓我們一探究竟
    2022-08-08
  • springcloud 中 zuul 修改請(qǐng)求參數(shù)信息的方法

    springcloud 中 zuul 修改請(qǐng)求參數(shù)信息的方法

    這篇文章主要介紹了springcloud 中 zuul 修改請(qǐng)求參數(shù)信息的方法,需要的朋友可以參考下
    2018-02-02
  • 深入學(xué)習(xí)Java 動(dòng)態(tài)代理

    深入學(xué)習(xí)Java 動(dòng)態(tài)代理

    Java 動(dòng)態(tài)代理機(jī)制的出現(xiàn),使得 Java 開發(fā)人員不用手工編寫代理類,只要簡(jiǎn)單地指定一組接口及委托類對(duì)象,便能動(dòng)態(tài)地獲得代理類。下面小編和大家來一起學(xué)習(xí)一下吧
    2019-05-05
  • Java 在Word文檔中添加藝術(shù)字的示例

    Java 在Word文檔中添加藝術(shù)字的示例

    這篇文章主要介紹了Java 在Word文檔中添加藝術(shù)字的示例,幫助大家使用Java處理word文檔,感興趣的朋友可以了解下
    2020-09-09
  • SpringCloud通過Feign傳遞List類型參數(shù)方式

    SpringCloud通過Feign傳遞List類型參數(shù)方式

    這篇文章主要介紹了SpringCloud通過Feign傳遞List類型參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評(píng)論