Kaptcha adalah alat pembuatan kode verifikasi yang sederhana dan mudah digunakan. Melalui konfigurasi, Anda dapat menentukan ukuran kode verifikasi, warna, karakter yang ditampilkan, dll. Sendiri. Mari kita bicara tentang cara menggunakan Kaptcha untuk menghasilkan kode verifikasi dan mengekstrak kode verifikasi di sisi server untuk verifikasi.
1. Bangun Lingkungan Uji
1.1. Buat proyek tes web
Buat proyek web baru dan tempatkan Kaptcha-2.3.2.jar di direktori web-inf/lib proyek seperti yang ditunjukkan pada gambar di bawah ini:
1.2. Konfigurasikan KaptChaservlet untuk menghasilkan kode verifikasi di file web.xml
Konfigurasi rinci KaptChaservlet adalah sebagai berikut:
<? Xml Version = "1.0" encoding = "UTF-8"?> <Web-app Versi = "2.5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http:/www.w3.org/2001 =" http:/www.w3.org/200 XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-apped-app_2.sun.sun.sun. <creendaking-File> index.jsp </celcome-file> </celcome-file-list> <!-konfigurasi kode verifikasi KAPTCHA-> <servlet> <!-servlet menghasilkan gambar-> <servlet-name> Kaptcha </servlet-name> <servlet-class> com.google.code.kaptcha.servlet.kapraspaps> <Ilin-param> <param-name> Kaptcha.border </param-name> <param-value> no </param-value> </init-param> <!-Warna font-> <Ilin-param> <param-name> Kaptcha.textproducer.font.color </Param-name> <Am Param--Param--Param- Param- PARAM- PARINAUE> width --> <init-param> <param-name>kaptcha.image.width</param-name> <param-value>135</param-value> </init-param> <!-- Which characters to use to generate verification codes--> <init-param> <param-name>kaptcha.textproducer.char.string</param-name> <param-value>ACDEFHKPRSTWX345679</param-value> </init-param> <!-- Image height --> <init-param> <param-name>kaptcha.image.height</param-name> <param-value>50</param-value> </init-param> <!-- Font size --> <init-param> <param-name> Kaptcha.TextProducer.font.size </param-name> <param-value> 43 </param-value> </init-param> <!-warna garis interferensi-> <Ilin--param> <param-name> Kaptcha.noise.color </Param-name> <param-vAm- volye> Kaptcha. Jumlah Karakter-> <Ilin-param> <Ilin-Param> <Ilin-param> <param-name> Kaptcha.noise.color </param-name> <param-value> hitam </param-value> </init-param> <!-Jumlah karakter-> <init--param> <param-name> Kaptcha.texty. <param-value>4</param-value> </init-param> <!-- Which fonts to use --> <init-param> <param-name>kaptcha.textproducer.font.names</param-name> <param-value>Arial</param-value> </init-param> </servlet> <!-- Mapping url --> <servlet-mapping> <servlet-name> Kaptcha </servlet-name> <rerl-pola> /kaptcha.jpg </url-pola> </servlet-mapping> </selpap>
1.3. Tampilkan kode verifikasi yang dihasilkan
Tampilkan kode verifikasi pada halaman index.jsp
<%@ page language = "java" pageEncoding = "UTF-8"%> <! Doctype html> <html> <head> <title> Tampilkan kode verifikasi yang dihasilkan oleh KaptChaservlet </iteme> <script type = "Text/JavaScript" src = "$ {pageContext.Request.contextPath} /js/jQuery-1.9.1.js"> </script> <script type = "text/javaScript"> // Klik untuk beralih fungsi kode verifikasi ChangeverifyCode () { $ ("#yzmimg"). attr ("src", "Kaptcha.jpg?"+Math.floor (math.random ()*100)); } // Kirim fungsi dosubmit () {var verifyCodevalue = $ ("#verifyCode"). Val (); if (verifyCoDevalue.replace (// s/g, "") == "") {alert ("Harap masukkan kode verifikasi"); } else {// secara asinkron periksa apakah kode verifikasi dimasukkan dengan benar sebelum mengirimkan var verifyUrl = "$ {pagecontext.Request.contextPath}/servlet/veriFyServlet? VerifikasiCode ="+verifyCodevalue; $ .AJAX ({type: "get", url: verifyurl, success: function (returnData) {if (returnData! = "y") {alert ("Harap masukkan kode verifikasi yang benar!");} else {// Kode verifikasi sudah benar, lakukan pengiriman operasi pengiriman ("Kode verifikasi yang benar, {exe), {exe), {E.); EROFT: {EROFT: {EROKTE: {EROKT: {E. {E.); }); }} </script> </head> <body> <sorm> <ablew> <tr> <td> Harap masukkan kode verifikasi: </td> <td> <input type = "text" name = "verifycode" id = "verifycode"> <img src = "sampcha.jpg" onklick = "changeverc:" Idcode (() "Kaptcha.jpg" onClick = "changeVerc =" IDC = "KAPTCHA.JPG" onClick = "changeVerc =") yoDC = "KAPTCHA.JPG" ONCLICK = "ChangeverCe (") Pointer; "> <a href =" javascript: void (0) "onclick =" changeVerifyCode () "> tidak dapat melihat dengan jelas, ubah satu lagi </a> </td> </tr> <tr> <td> </tder> <t/<) <input type =" value "value =" kirim "onClick =" doSubs = "doS =) <) <) <) <)" value "value =" kirim "onClick =" doSubs = "doSBit =") </body> </html>Efek operasi ditunjukkan pada gambar di bawah ini:
1.4. Verifikasi kode verifikasi yang dikirimkan di sisi server
Setelah pengguna mengirimkan kode verifikasi dalam formulir formulir, kami akan memverifikasi di sisi server dan menulis veriFyServlet dengan kode berikut:
/***/package me.gacl.web.controller; import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletException; impor javax.servlet.http.htpservlet; impor javax.servlet.http.htpservlet; impor javax.servlet.htp.htpservlet; javax.servlet.http.httpservletResponse; kelas publik VeriFyServlet memperluas httpservlet {public void doGet (httpservletRequest, httpservletponseponse ("lempar htplexception, ioException {response.setContentType; response.setheader ("pragma", "no-cache"); response.setheader ("cache-control", "no-cache"); Printwriter out = null; coba {// data respons string resultData; // Dapatkan string kode verifikasi yang dilewati VerifyCode = request.getParameter ("VerifyCode"); System.out.println ("VerifyCode ----"+VerifyCode); if (verifyCode == "") {resultData = "n"; } else {// Dapatkan kode verifikasi yang disimpan dalam string sesi Kaptchavalue = (string) request.getSession (). getAttribute (com.google.code.kaptcha.constants.kaptcha_session_key); // Bandingkan apakah kode verifikasi yang dimasukkan dan kode verifikasi yang dihasilkan aktual adalah sama jika (Kaptchavalue == null || KaptChavalue == "" ||! VerifyCode.EqualSignorecase (KAPTCHAVALUE)) {resultData = "n"; } else {resultData = "y"; }} out = response.getWriter (); out.write (resultData); out.flush (); } catch (Exception e) {E.PrintStackTrace (); } akhirnya {if (out! = null) {out.close (); }}}} Daftarkan VeriFyServlet di web.xml
<!-Periksa apakah kode verifikasi dimasukkan dengan benar-> <servlet> <servlet-name> verifyservlet </servlet-name> <servlet-class> me.gacl.web.controller.verifyServlet </servlet-class> </servlet> <servlet-papping> <servlet-name> VerifyServlet </Servlet> <RURL-PATERS>/SERVLET/VERIFYSERVLET </url-pola> </servlet-Mapping>
Hasil operasi adalah sebagai berikut:
1. Jangan masukkan kode verifikasi
2. Masukkan kode verifikasi yang salah
3. Masukkan kode verifikasi yang benar
Menggunakan Kaptcha untuk menghasilkan kode verifikasi terasa enak, sangat mudah digunakan dan nyaman. Saya berharap semua orang bisa menguasainya.