Kaptcha는 간단하고 사용하기 쉬운 검증 코드 생성 도구입니다. 구성을 통해 확인 코드 크기, 색상, 표시 문자 등을 정의 할 수 있습니다. Kaptcha를 사용하여 확인 코드를 생성하고 확인을 위해 서버 측에서 확인 코드를 추출하는 방법에 대해 이야기 해 봅시다.
1. 테스트 환경을 구축하십시오
1.1. 웹 테스트 프로젝트를 만듭니다
새로운 웹 프로젝트를 만들고 아래 그림과 같이 프로젝트의 웹 -INF/LIB 디렉토리에 Kaptcha-2.3.2.jar를 배치하십시오.
1.2. web.xml 파일에서 확인 코드를 생성하도록 Kaptchaservlet 구성
Kaptchaservlet의 자세한 구성은 다음과 같습니다.
<? xml version = "1.0"encoding = "utf-8"?> <web-app version = "2.5"xmlns = "http://java.sun.com/xml/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/weeb-app_2_5.xsd <welcome-file> index.jsp </welcome-file> </welcome-file-list> <!-Kaptcha verification code 구성-> <servlet> <!-서블릿 생성 이미지-> <servlet-name> kaptcha </servlet-name> <servlet-class> com.google.code.kaptcha.servlet. <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 </reglt </regt-param> -> <init-param> <param-name> kaptcha.image.width </param-name> <param- value> 135 </param- value> </init-param> <!-검증 코드를 생성하는 데 사용하는 문자-> <init-param> <param-name> kaptcha.textProduce.string </param-name> <Param-value> acdefhkprstwx345679 </param-value> </init-param> <!-이미지 높이-> <init-param> <param-name> kaptcha.image.height </param-name> <param- value> 50 </param-value> </init-param> <!-font-param>. <Param-Name> kaptcha.textProducer.font.size </param-name> <param-value> 43 </param-value> </init-param> <!-간섭 줄의 색상-> <init-param> <param-name> kaptcha.noise.color </retam-value> black </param-val </retmal-value> 문자-> <init-param> <init-param> <init-param> <param-name> kaptcha.noise.color </param-name> <param- value> black </param-value> </init-param> <!-문자 수-> <init-param> <param-name> kaptcha.textprocer.l </param-name> <Param-value> 4 </param-value> </init-param> <!-사용하는 글꼴-> <init-param> <param-name> kaptcha.textproducer.font.names </param-name> <param-value> arial </param- value> </init-param> <!-mapping url-> <Servlet-name> Kaptcha </servlet-name> <Url-pattern> /kaptcha.jpg </url-pattern> </servlet-mapping> </web-app>
1.3. 생성 된 검증 코드를 표시하십시오
Page 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"> // 확인 코드를 전환하려면 클릭하여 changeVerifyCode () { $ ( "#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? verifycode ="+verifycodevalue; $ .ajax ({type : "get", url : verifyUrl, success : function (returnData) {if (returnData! = "y") {alert ( "올바른 검증 코드를 입력하십시오!");} else {// 확인 코드가 제출 조작 경고를 수행합니다 ( "Verification Code가 정확하고 양식을 제출합니다") }); }} </script> </head> <body> <form> <table> <tr> <td> 검증 코드를 입력하십시오 : </td> <td> <input type = "text"name = "verifycode"id = "verifycode"> <img src = "kaptcha.jpg"onclick = "chereverifycode ()"yzmg "style :" 포인터; "> <a href ="javaScript : void (0) "onclick ="changeVerifyCode () "> 다른 것을 명확하게 볼 수 없습니다. 다른 하나를 명확하게 볼 수 없습니다. </body> </html>작동 효과는 아래 그림에 나와 있습니다.
1.4. 서버 측에서 제출 된 확인 코드를 확인하십시오
사용자가 폼 양식으로 확인 코드를 제출 한 후 서버 측에서 확인하고 다음 코드로 VerifyServlet을 작성합니다.
/***/package me.gacl.web.controller; import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.httpervletrequpt; import; javax.servlet.http.htttp.httpservletresponse; public class verifyservlet는 httpservlet {public void doget (httpservletrequest request, httpservletresponse 응답) servletexception, ioexception {setcontenttype ( "text/html; charaSet = uTml; Response.SetHeader ( "Pragma", "No-Cache"); Response.SetHeader ( "Cache-Control", "No-Cache"); printwriter out = null; 시도 {// 응답 데이터 문자열 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 == "" "||! gryifycode.equalsignorecase (kaptchavalue))인지 비교) {resultData ="n "; } else {resultData = "y"; }} out = response.getWriter (); out.write (resultData); out.flush (); } catch (예외 e) {e.printstacktrace (); } 마침내 {if (out! = null) {out.close (); }}}} web.xml에 verifyservlet를 등록하십시오
<!-확인 코드가 올바르게 입력되었는지 확인합니다.> <Servlet> <Servlet-Name> verifyservlet </servlet-name> <servlet-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를 사용하여 검증 코드를 생성하는 것이 좋습니다. 사용하기가 매우 쉽고 편리합니다. 모두가 마스터 할 수 있기를 바랍니다.