Kaptcha هي أداة توليد رمز التحقق بسيطة وسهلة الاستخدام. من خلال التكوين ، يمكنك تحديد حجم رمز التحقق ، واللون ، والأحرف المعروضة ، وما إلى ذلك بنفسك. دعنا نتحدث عن كيفية استخدام kaptcha لإنشاء رموز التحقق واستخراج رموز التحقق على جانب الخادم للتحقق.
1. بناء بيئة اختبار
1.1. إنشاء مشروع اختبار الويب
قم بإنشاء مشروع ويب جديد ومكان Kaptcha-2.3.2.jar في دليل الويب الخاص بالمشروع/LIB كما هو موضح في الشكل أدناه:
1.2. تكوين KaptChaservlet لإنشاء رمز التحقق في ملف web.xml
التكوين التفصيلي لـ KaptChaservlet هو كما يلي:
<؟ XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5. <IRMON-file> index.jsp </iship-file> </rial-file-list> <!-تكوين رمز التحقق من kaptcha-> <servlet> <!-صورة توليد servlet-> <servlet-name> kaptcha </servlet-name> <servlet-class> com.google <Ing-param> <Param-Name> kaptcha.border </param-name> <param-value> no </parm-value> </ith-param> <!-font color-> <Ing-param> <Param-name> kaptcha.textproducer.font.color </param-name> Width-> <Ing-param> <Param-name> kaptcha.image.width </param-name> <param-value> 135 </param-value> </ith-param> <!-أي أحرف لإنشاء رموز التحقق-> <INIT-PARAM> <Param-value> ACDEFHKPRSTWX345679 </param-value> </ith-param> <!-ارتفاع الصورة-> <IRING-PARAM> <PARAM-NAME> KAPTCHA.IMAGE.HIGHE </param-name> <baram-value> 50 </baram-value> <Param-name> kaptcha.textproducer.font.size </param-name> <param-value> 43 </parm-value> </ith-param> <!-لون خط التداخل-> <Ing-param> <param-name> kaptcha.noise.color </param-name> عدد الأحرف-> <ING-PARAM> <IRING-PARAM> <IRING-PARAM> <PARAM-NAME> KAPTCHA.NOISE.COLOR </param-name> <Param-value> 4 </parm-value> </ith-param> <!-أي خطوط لاستخدامها-> <Ing-param> <Param-name> kaptcha.textproducer.font.names </marm-name> <Param-value> arial </param-value> </ith-param> </servlet> <! <Sradlet-Name> Kaptcha </servlet-name> <url-pattern> /kaptcha.jpg </url-pattern> </servlet mapping> </web-app>
1.3. عرض رمز التحقق الذي تم إنشاؤه
عرض رمز التحقق في الصفحة index.jsp
<٪@ page language = "java" pageencoding = "utf-8" ٪> <! doctype html> <html> <head> <title> أظهر رمز التحقق الذي تم إنشاؤه بواسطة kaptchaservlet </title> <script type = "text/javaScript" src = "$ {pagecontext.request.contextpath} /js/jquery-1.9.1.js"> </script> <script type = "text/javaScript $ ("#yzmimg"). attr ("src" ، "kaptcha.jpg؟"+math.floor (math.random ()*100)) ؛ } // إرسال دالة dosubmit () {var verifyCodeValue = $ ("#verifycode"). val () ؛ if (VerifyCodeValue.replace (// s/g ، "") == "") {Alert ("الرجاء إدخال رمز التحقق") ؛ } آخر {// بشكل غير متزامن تحقق مما إذا كان يتم إدخال رمز التحقق بشكل صحيح قبل إرسال var VerifyUrl = "$ {pagecontext.request.contextpath}/servlet/verifyservlet؟ verifyCode ="+verifyCodevalue ؛ $ .ajax ({type: "get" ، url: VerifyUrl ، النجاح: الدالة (returndata) {if (returndata! = "y") {Alert ("الرجاء إدخال رمز التحقق الصحيح!") ؛} else {// رمز التحقق صحيح ، تنفيذ تنبيه عملية التقديم ("رمز التحقق هو الصحيح ، إرسال الشكل") ؛} ، }}) ؛ }}} </script> </head> <body> <porm> <table> <tr> <td> الرجاء إدخال رمز التحقق: </td> <td> <type type = "text" name = "verifycode" id = "verifycode"> <img src = "kaptcha.jpg" onclick = "changeverifycode () Pointer ؛ "> <a href =" javaScript: void (0) "onClick =" changeverifyCode () "> لا يمكن رؤية بوضوح ، قم بتغيير واحد آخر </a> </td> </tr> <tr> <td> </td> <td> <td> </body> </html>يظهر تأثير التشغيل في الشكل أدناه:
1.4. تحقق من رمز التحقق المقدم على جانب الخادم
بعد أن يقدم المستخدم رمز التحقق في النموذج ، سنتحقق منه على جانب الخادم ونكتب Verifyservlet مع الرمز التالي:
/***/package me.gacl.web.controller ؛ استيراد java.io.ioException ؛ استيراد java.io.printwriter ؛ استيراد javax.servlet.servletexception ؛ import javax.servlet.http.httpservlet ؛ import javax.servlet.http.htttplet ؛ javax.servlet.http.httpservletresponse ؛ الطبقة العامة verifyservlet يمتد httpservlet {public void dogge (httpservletrequest request ، httpservletponse) رمي servleTexception ، ioException {response.setconttype ("text/html ؛ استجابة. استجابة. printWriter Out = null ؛ حاول {// استجابة سلسلة بيانات resultData ؛ // احصل على سلسلة رمز التحقق التي تم تمريرها VerifyCode = request.getParameter ("VerifyCode") ؛ System.out.println ("VerifyCode ----"+VerifyCode) ؛ if (verifyCode == "") {resultData = "n" ؛ } آخر {// احصل على رمز التحقق المخزن في سلسلة الجلسة kaptchavalue = (سلسلة) request.getSession (). getAttribute (com.google.code.kaptcha.constants.kaptcha_session_key) ؛ // قارن ما إذا كان رمز التحقق الذي تم إدخاله ورمز التحقق الفعلي الذي تم إنشاؤه هو نفسه إذا كان (KaptChavalue == null || kaptchavalue == "" ||! VerifyCode.equalsInsInoreCase (kaptchavalue)) {resultData = "n" ؛ } آخر {resultData = "y" ؛ }} out = response.getWriter () ؛ out.write (resultData) ؛ out.flush () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ } أخيرًا {if (out! = null) {out.close () ؛ }}}} تسجيل VerifyServlet في web.xml
<!-تحقق مما إذا كان يتم إدخال رمز التحقق بشكل صحيح-> <Sradlet> <Sradlet-Name> VerifyServlet </servlet-name> <stervlet-class> me.gacl.web.controller.verifyservlet </rectlet-class> </servlet> <servlet-mapping> <Url-pattern>/servlet/verifyservlet </url-pattern> </revlet-mapping>
نتائج التشغيل كما يلي:
1. لا تدخل رمز التحقق
2. أدخل رمز التحقق الخاطئ
3. أدخل رمز التحقق الصحيح
إن استخدام KaptCha لإنشاء رموز التحقق بشكل جيد ، فهو سهل الاستخدام ومريح للغاية. آمل أن يتمكن الجميع من إتقانها.