java使用kaptcha 驗證碼組件

jopen 10年前發布 | 107K 次閱讀 kaptcha 驗證碼(Captcha)

(1)kaptcha 是一個驗證碼生成工具。你可以生成各種樣式的驗證碼,因為它是可配置的。kaptcha工作的原理是調 com.google.code.kaptcha.servlet.KaptchaServlet,生成一個圖片。同時將生成的驗證碼字符串放到 HttpSession中。

  • kaptcha可以方便的配置 :

    </li>

    1. kaptcha.border  是否有邊框  默認為true  我們可以自己設置yes,no   
    2. kaptcha.border.color   邊框顏色   默認為Color.BLACK   
    3. kaptcha.border.thickness  邊框粗細度  默認為1  
    4. kaptcha.producer.impl   驗證碼生成器  默認為DefaultKaptcha   
    5. kaptcha.textproducer.impl   驗證碼文本生成器  默認為DefaultTextCreator   
    6. kaptcha.textproducer.char.string   驗證碼文本字符內容范圍  默認為abcde2345678gfynmnpwx   
    7. kaptcha.textproducer.char.length   驗證碼文本字符長度  默認為5  
    8. kaptcha.textproducer.font.names    驗證碼文本字體樣式  默認為new Font("Arial"1, fontSize), new Font("Courier"1, fontSize)   
    9. kaptcha.textproducer.font.size   驗證碼文本字符大小  默認為40  
    10. kaptcha.textproducer.font.color  驗證碼文本字符顏色  默認為Color.BLACK   
    11. kaptcha.textproducer.char.space  驗證碼文本字符間距  默認為2  
    12. kaptcha.noise.impl    驗證碼噪點生成對象  默認為DefaultNoise   
    13. kaptcha.noise.color   驗證碼噪點顏色   默認為Color.BLACK   
    14. kaptcha.obscurificator.impl   驗證碼樣式引擎  默認為WaterRipple   
    15. kaptcha.word.impl   驗證碼文本字符渲染   默認為DefaultWordRenderer   
    16. kaptcha.background.impl   驗證碼背景生成器   默認為DefaultBackground   
    17. kaptcha.background.clear.from   驗證碼背景顏色漸進   默認為Color.LIGHT_GRAY   
    18. kaptcha.background.clear.to   驗證碼背景顏色漸進   默認為Color.WHITE   
    19. kaptcha.image.width   驗證碼圖片寬度  默認為200  
    20. kaptcha.image.height  驗證碼圖片高度  默認為50 
    21. </ol>

       下面一個簡單的實例:

      1.首先去官網下載jar:http://code.google.com/p/kaptcha/

      2.建立一個web項目,導入kaptcha-2.3.jar到環境變量中。

      3.配置web.xml文件

          <servlet>  
            <servlet-name>Kaptcha</servlet-name>  
            <servlet-class>  
             com.google.code.kaptcha.servlet.KaptchaServlet  
            </servlet-class>  
            <init-param>  
             <description>  
              Border around kaptcha. Legal values are yes or no.  
             </description>  
             <param-name>kaptcha.border</param-name>  
             <param-value>no</param-value>  
            </init-param>  
            <init-param>  
             <param-name>kaptcha.textproducer.font.size</param-name>  
             <param-value>45</param-value>  
            </init-param>  
            <init-param>  
             <param-name>kaptcha.textproducer.char.string</param-name>  
             <param-value>abcdefnmnwx235678ABCDEFGHKQRSTX</param-value>  
            </init-param>  
            <init-param>  
             <description>  
              Ending background color. Legal values are r,g,b.  
             </description>  
             <param-name>kaptcha.background.clear.from</param-name>  
             <param-value>196,229,248</param-value>  
            </init-param>  
            <init-param>  
             <description>  
              Ending background color. Legal values are r,g,b.  
             </description>  
             <param-name>kaptcha.background.clear.to</param-name>  
             <param-value>196,229,248</param-value>  
            </init-param>  
            <!-- 設置字體個數 -->  
            <init-param>  
             <param-name>kaptcha.textproducer.char.length</param-name>  
             <param-value>5</param-value>  
            </init-param>  
           </servlet>  
           <servlet-mapping>  
            <servlet-name>Kaptcha</servlet-name>  
            <url-pattern>/kaptcha.jpg</url-pattern>  
           </servlet-mapping>  

      jsp頁面
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">       
          <html>       
              <head>       
                  <%@ page language="java" contentType="text/html; charset=UTF-8"%>       
                  <meta http-equiv="Content-Type" content="text/html; charset=UTF-">       
                  <title>Kaptcha Example</title>       
                  <mce:script type="text/javascript" src="js/jquery-1.3.2.js" mce_src="js/jquery-1.3.2.js"></mce:script>       
              </head>       
              <body>       
                  Enter in the       
                  <a href="/misc/goto?guid=4959556119318052384" mce_href="/misc/goto?guid=4959556119318052384">Kaptcha</a> to see if it       
                  matches what is stored in the session attributes.       
                  <table>       
                      <tr>       
                          <td>       
                              <img src="Kaptcha.jpg" mce_src="Kaptcha.jpg" id="kaptchaImage" />       
                              <mce:script type="text/javascript"><!--       
          $('#kaptchaImage').click(       
                  function() {       
                      $(this).hide().attr('src',       
                              'Kaptcha.jpg?' + Math.floor(Math.random() * 100)).fadeIn();       
                  })       
          // --></mce:script>       
                              <br />       
                              單擊換圖片       
                          </td>       
                          <td valign="top">       
                              <form method="POST">       
                                  <br>       
                                  驗證碼::       
                                  <input type="text" name="kaptchafield">       
                                  <br />       
                                  <input type="submit" name="submit">       
                              </form>       
                          </td>       
                      </tr>       
                  </table>       
                  <br />       
                  <br />       
                  <br />       
                  <br />       
                  <%       
                      String c = (String) session       
                              .getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);       
                      String parm = (String) request.getParameter("kaptchafield");       
      
                      System.out.println(c);       
                      out.println("Parameter: " + parm + " ? Session Key: " + c + " : ");       
                     if (c != null && parm != null)       
                     {       
                          if (c.equals(parm))       
                         {       
                             out.println("<b>true</b>");       
                         } else       
                         {       
                              out.println("<b>false</b>");       
                          }       
                     }       
                  %>       
              </body>       
          </html>      

  •  本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
     轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
     本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!