Kaptcha-это простой и простой в использовании инструмент генерации кода проверки. Благодаря конфигурации вы можете определить размер кода проверки, цвет, отображаемые символы и т. Д. Сами. Давайте поговорим о том, как использовать Kaptcha для генерации кодов проверки и извлечения кодов проверки на стороне сервера для проверки.
1. Создайте испытательную среду
1.1. Создать проект веб -тестирования
Создайте новый веб-проект и поместите Kaptcha-2.3.2.jar в каталоге проекта Web-Inf/Lib, как показано на рисунке ниже:
1.2. Настройте KaptChaservlet для создания кода проверки в файле web.xml
Подробная конфигурация Kaptchaservlet заключается в следующем:
<? xml version = "1.0" Encoding = "utf-8"?> <web-app arser = "2,5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema electan "/www.w3. 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.x5 <welcelporting> index.jsp </werveding-file> </werveding-file-list> <!-Конфигурация проверки кода Kaptcha-> <servlet> <!-Сервлетовое генерирующее изображение-> <servlet-name> kaptcha </servlet-name> <vervlet-class> com.google.code.kaptcha.servlet.kaptcher> </servlet-class> <! <init-param> <param-name>kaptcha.border</param-name> <param-value>no</param-value> </init-param> <!-- Font color--> <init-param> <param-name>kaptcha.textproducer.font.color</param-name> <param-value>red</param-value> </init-param> <!-- Image width --> <Init-param> <param-name> kaptcha.image.width </param-name> <param-value> 135 </param-value> </init-param> <!-какие символы используют для генерации кодов проверки-> <init-param> <param-ame> kaptcha.textproducer.char.string </param-name> <param-value> acdefhkprstwx345679 </param-value> </init-param> <!-Высота изображения-> <Inic-param> <may-name> kaptcha.image.height </param-name> <param-value> 50 </param-value> </init-param> <!-font size-> <initpar> </param-value> </init-param> <! <param-name> kaptcha.textproducer.font.size </param-name> <param-value> 43 </param-value> </init-param> <!-Цвет интерференционной линии-> <Inic-param> <-param-name> kaptcha.noise.color </param-name> </param-value> black </param-value> in-par number nechince> in-par> init-par> init-par> init-par </param-value> in-par> init-par> init-par> </param-value> in-par> in-par> </param-value> param-val <Init-param> <init-param> <init-param> <param-name> kaptcha.noise.color </param-name> <param-value> black </param-value> </init-param> <!-Номер символов-> <init-param> <param-ame> kaptcha.textproducer.lengh. </init-param> <!-Какие шрифты использовать-> <initparam> <param-name> kaptcha.textproducer.font.names </param-name> <value> arial </param-value> </init-param> </servlet> <!-mapping url-> <servlet-mapping> <servlet-name> kapta> </! <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"> // Нажмите, чтобы переключить код проверки FunctionCodeCode () { $ ("#yzmimg"). attr ("src", "kaptcha.jpg?"+math.floor (math.random ()*100)); } // Отправить функцию doSubmit () {var verifyCodevalue = $ ("#verifyCode"). Val (); if (verifycodevalue.replace (// s/g, "") == "") {alert ("Пожалуйста, введите код проверки"); } else {// асинхронно проверить, правильно ли введен код проверки перед отправкой var verifyurl = "$ {pagecontext.request.contextPath}/servlet/verifyServlet? veserifyCode ="+veserifyCodeValue; $ .ajax ({type: «get», url: verifyurl, успех: function (returnData) {if (returnData! }}); }} </script> </head> <body> <form> <table> <tr> <td> введите код проверки: </td> <td> <input type = "text" name = "verifycode" id = "verifycode"> <img src = "kaptcha.jpg" onclick = "joververifycode ()" yzmim yzmim yzmiM. pointer; "> <a href =" javaScript: void (0) "onclick =" changeVerifyCode () "> не видно ясно, изменить еще один </a> </td> </tr> <tr> <td> </td> <td> </td> <value =" onclick = "doSubmit ()"> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </ty </body> </html>Эффект работы показан на рисунке ниже:
1.4. Проверьте представленный код проверки на стороне сервера
После того, как пользователь подарит код проверки в форме формы, мы проверим его на стороне сервера и напишем VerifyServlet со следующим кодом:
/***/package me.gacl.web.controller; import java.io.ioexception; импорт java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservlectrequest; javax.servlet.http.httpservletresponse; открытый класс VerifyServlet расширяет httpservlet {public void Doget (httpservletrequest, httpservletresponse response) throws servletexception, ioexception {response.sontenttype ("text/html = utf-8"); response.setheader ("pragma", "без Cache"); response.setheader («Контроль кэша», «без каша»); Printwriter Out = null; try {// string data rescound data resultdata; // Получить переданный код проверки string verifycode = request.getParameter ("verifyCode"); System.out.println ("verifyCode ----"+verifyCode); if (verifycode == "") {resultData = "n"; } else {// Получить код проверки, хранящийся в строке сеанса kaptChavalue = (string) request.getSession (). getattribute (com.google.code.kaptcha.constants.kaptcha_session_key); // Сравните, являются ли введенный код проверки и фактический сгенерированный код проверки одинаковыми if (kaptChavalue == null || kaptChavalue == "" ||! VerifyCode.equalsIgnoreCase (kaptChavalue)) {resultData = "n"; } else {resultData = "y"; }} out = response.getWriter (); out.write (resultData); out.flush (); } catch (Exception e) {e.printstackTrace (); } наконец {if (out! = null) {out.close (); }}}} Зарегистрировать VerifyServlet в web.xml
<!-Проверьте, правильно ли введен код проверки-> <servlet> <servlet-name> verifyservlet </servlet-name> <berlet-class> me.gacl.web.controller.verifyservlet </servlet-class> </servlet> <servlet-mapping> <servlet-name> verifyservlet </servlet-name>> <Url-pattern>/servlet/verifyservlet </url-pattern> </servlet-mapping>
Результаты работы следующие:
1. Не вводите код проверки
2. Введите неправильный код проверки
3. Введите правильный код проверки
Использование Kaptcha для генерации кодов проверки кажется хорошим, он очень прост в использовании и удобно. Я надеюсь, что каждый сможет овладеть этим.