Kaptcha est un outil de génération de code de vérification simple et facile à utiliser. Grâce à la configuration, vous pouvez définir la taille du code de vérification, la couleur, les caractères affichés, etc. Parlons de la façon d'utiliser Kaptcha pour générer des codes de vérification et extraire les codes de vérification du côté serveur pour la vérification.
1. Construisez un environnement de test
1.1. Créer un projet de test Web
Créez un nouveau projet Web et placez Kaptcha-2.3.2.jar dans le répertoire Web-infr / lib du projet comme indiqué dans la figure ci-dessous:
1.2. Configurer KaptChaservlet pour générer du code de vérification dans le fichier web.xml
La configuration détaillée de Kaptchaservlet est la suivante:
<? xml version = "1.0" encoding = "utf-8"?> <web-app version = "2.5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema instance" 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.xsd"> <l bien-être-List> <Ken welcome-file> index.jsp </ welcome-file> </ welcome-file-list> <! - Kaptcha Verification Code Configuration -> <Serplet> <! - Servlet Generating Image -> <Servlet-Name> kaptcha </ servlet-name> <servlet-class> com.google.code.kaptcha <Innit-Param> <Am param-name> kaptcha.border </ param-name> <param-value> no </onsam-valeur> </ init-param> <! - Font Color -> <Init-Param> <Amar-name> Kaptcha.TextProducer.font.Color </ param-Name> <Am-Value> Red </Amam-value> </ Init-Param> <! -> <Init-Param> <Am param-name> kaptcha.image.width </ param-name> <param-valeur> 135 </onsam-valent> </itnit-param> <! - quels caractères utiliser pour générer des codes de vérification -> <Init-Param> <Am param-name> kaptcha.textproduer.char.string </amaram-name> <Amaire-Value> ACDEFHKPRSTWX345679 </ Param-Value> </Init-Param> <! - Image Height -> <Init-Param> <AmArd-Name> Kaptcha.image.Height </ Param-Name> <Am param-Value> 50 </ Param-value> </Init-Param> <! - Font Taille -> <in init-Param> <param-name> kaptcha.textproducer.font.size </ param-name> <param-valeur> 43 </ param-valeur> </ init-param> <! - Couleur de la ligne d'interférence -> <Init-Param> <Amar-name> Kaptcha.noise.color </ param-name> <param-value> noir des caractères -> <Init-Param> <Init-Param> <Init-Param> <Am param-name> kaptcha.noise.color </ param-name> <param-Value> Black </ param-Value> </Init-Param> <! - Nombre de caractères -> <IniT-PARAM> <Am param-Value> 4 </ Param-Value> </ init-Param> <! - Que fait des politiques à utiliser -> <it-param> <param-name> kaptcha.textproducer.font.names </ param-name> </value> arrial </ param-vale-mappant-mappant> <Servlet-name> kaptcha </ servlet-name> <url-potern> /kaptcha.jpg </url-stern> </vrlet-mapping> </low-appre>
1.3. Afficher le code de vérification généré
Afficher le code de vérification sur index.jsp
<% @ page Language = "Java" Pageencoding = "UTF-8"%> <! DocType HTML> <HTML> <A-Head> <Title> Affichez le code de vérification généré par KaptChaservlet </Title> <Script Type = "Text / Javascript" src = "$ {pagecontext.request.contextpath} /js/jquery-1.9.1.js"> </ script> <script type = "Text / javascrip $ ("# yzmimg"). att ("src", "kaptcha.jpg?" + math.floor (math.random () * 100)); } // Soumettre la fonction Dosubmit () {var VerifyCodEvalue = $ ("# VerifyCode"). Val (); if (VerifyCodEvalue.replace (// s / g, "") == "") {alert ("Veuillez saisir le code de vérification"); } else {// Vérifiez de manière asynchrone si le code de vérification est entré correctement avant de soumettre var VerifyUrl = "$ {pageContext.Request.ContextPath} / Servlet / VeriFyservlet? VerifyCode =" + VerifyCodevalue; $ .ajax ({type: "get", url: vérifierl, succès: function (returnData) {if (returnData! = "y") {alert ("Veuillez saisir le code de vérification correct!");} else {// Le code de vérification est correct, effectuer le fonctionnement de soumission Alert ("Le code de vérification est correct, soumet le formulaire");}}, error: Fonction (e)). }}); }} </ script> </ head> <body> <form> <s tablel> <tr> <td> Veuillez saisir le code de vérification: </td> <td> <entrée type = "text" name = "VerifyCode" id = "VerifyCode"> <img src = "kaptcha.jpg" OnClick = "changefrifycode ()" id = "yzmimg" style = "Cursor: Cursor: Cursor: pointer; "> <a href =" javascript: void (0) "onclick =" changeverifycode () "> ne peut pas voir clairement, modifiez un autre </a> </putf> </tr> <tr> <td> </td> <td> <entrée type =" Button "Value =" soumis "OnClick =" Dosubmit () "> </ TD> </ body> </html>L'effet de fonctionnement est illustré dans la figure ci-dessous:
1.4. Vérifiez le code de vérification soumis du côté serveur
Après que l'utilisateur ait soumis le code de vérification dans le formulaire de formulaire, nous le vérifierons du côté du serveur et rédigerons un VeriFyservlet avec le code suivant:
/ ** * / package me.gacl.web.controller; import java.io.ioexception; importer java.io.printwriter; import javax.servlet.servletException; import javax.servlet.http.httpservlet; import javax.servlet.http.httpsservlet javax.servlet.http.httpservletResponse; public class VeriFyservlet étend httpservlet {public void doget (httpservletRequest request, httpservletResponse réponse) lance servlexception, ioException {réponse.SetContType ("text / html; charaset = utf-18"); Response.sethEader ("Pragma", "No-Cache"); Response.sethEader ("Cache-Control", "No-cache"); Printwriter out = null; essayez {// la chaîne de données de réponse resultData; // Obtenez la chaîne de code de vérification passée VerifyCode = request.getParameter ("VerifyCode"); System.out.println ("VerifyCode ----" + VerifyCode); if (VerifyCode == "") {resultData = "n"; } else {// Obtenez le code de vérification stocké dans la chaîne de session kaptchavalue = (string) request.getSession (). getAttribute (com.google.code.kaptcha.constants.kaptcha_session_key); // Comparez si le code de vérification entré et le code de vérification généré réel sont les mêmes if (kaptchavalue == null || kaptChavalue == "" ||! VerifyCode.equalsignorecase (kaptChavalue)) {resultData = "n"; } else {resultData = "y"; }} out = réponse.getWriter (); out.write (resultData); out.flush (); } catch (exception e) {e.printStackTrace (); } enfin {if (out! = null) {out.close (); }}}} Enregistrez VeriFyservlet dans web.xml
<! - Vérifiez si le code de vérification est entré correctement-> <Servlet> <Servlet-Name> Verifyservlet </vrlett-name> <Servlet-Class> me.gacl.web.controller.verifiServlet </vrevlet-Class> </ Servlet> <Servlet-Mapping> <Servlet-Name> Verifleservlet </vrlett-Name> <URL-Pattern> / Servlet / VeriFyservlet </url-stern> </ servlet-mapping>
Les résultats de l'opération sont les suivants:
1. Ne saisissez pas le code de vérification
2. Entrez le mauvais code de vérification
3. Entrez le code de vérification correct
L'utilisation de Kaptcha pour générer des codes de vérification est bien, il est très facile à utiliser et pratique. J'espère que tout le monde pourra le maîtriser.