수동으로 Java Verification Code를 작성하면 특정 컨텐츠는 다음과 같습니다.
웹 응용 프로그램 확인 코드의 구성 :
(1) 입력 상자
(2) 검증 코드를 보여주는 그림
검증 코드 작성 프로세스 :
확인 코드를 생성하는 컨테이너는 J2EE의 서블릿을 사용합니다.
이미지를 생성하는 데 필요한 클래스 :
(1) BufferedImage 이미지 데이터 버퍼
(2) 그래픽 그리기 그림
(3) 색상은 색상을 얻습니다
(4) 랜덤은 랜덤 숫자를 생성합니다
(5) Imageio 입력 이미지
특정 구현 프로세스 :
(1) 검증 코드를 생성하기 위해 서블릿을 정의합니다
(2) BufferedImage 객체를 결정하십시오. 주 기능은 이미지의 임시 컨테이너로 이미지 버퍼를 생성하는 것입니다.
(3) 그림의 그래픽 객체, 도면의 "배경"을 얻고 그것을 "캔버스"로 이해합니다.
(4) 검증 정보를 생성하기 위해 임의를 통해 임의 숫자를 생성합니다.
(5) 그래픽 작업을 통해 특정 도면을 그립니다
(6) 정보는 세션에 저장됩니다
(7) imageio를 사용하여 생성 된 이미지를 출력하고 이미지 () 메소드의 out () 메소드, response.getOutputStream ()에서 아웃 매개 변수를 설정하여 이미지를 전경으로 전달하십시오.
(8) 검증을위한 서블릿을 만들고 검증을 위해 세션에서 데이터를 추출합니다 (Ajax 비동기 방법은 여기에서 사용됩니다).
특정 코드 구현 (웹 측 확인 코드 예제)
<html> <head> <meta http-equiv = "content-type"content = "text/html; charset = utf-8"> <title> java verification code </title> <script src = "https://apps.bdimg.com/jquery/2.1.4/jquery.min.js"> </jquery.min.js "> </jquery.min 검증 코드 입력 : <입력 유형 = "텍스트"이름 = "checkCode"> <img id = "codeimg"src = "imagesVlet"> <a href = "javaScript : repoadCode ();"> 명확하게 볼 수 없습니까? </a> <br/> <input type = "value ="value = "제출"> <div id = "info"style = "color : red;"> </div> <script type = "text/javaScript"> $ (function () {// ajax Asynchronously Asynchronously verecification code를 배경 $ ( "입력 [type = subge]")으로 전송합니다. { "Code": "name = checkcode]). date (). gettime (); // 다른 시간을 만듭니다imageservlet 클래스 (확인 코드 생성 부분)
@webservlet ( "/imageservlet") public class imageservlet는 httpservlet {private static final long serialversionuid = 1l을 확장합니다. / ** * @httpservlet#httpservlet () */ public imageservlet () {super (); // TODO 자동 생성 생성자 스텁}/ ** * @ @httpservlet#doget (httpservletrequest request, httpservletreponse responsk) */ protected void doget (httpservletrequest 요청) bimg = 새로운 bufferedimage (68, 22, bufferedimage.type_int_rgb); 그래픽 g = bimg.getGraphics (); 색상 = 새로운 색상 (200,151,255); // 색상 생성 G.SetColor (색); G.FillRect (0, 0, 68, 22); char [] ch = "abcdefghghjiklmnopqrstuvwxyz0123456789".tochararray (); // 문자와 숫자가 포함 된 배열을 얻은 다음 무작위로 무작위 무작위 = new Random ()에서 문자를 얻습니다. // 임의의 숫자 생성 int len = ch.length, index; StringBuffer sbuffer = new StringBuffer (); // 루프는 (int i = 0; i <4; i ++) {index = random.nextint (len)에 대해 4 개의 랜덤 문자를 생성합니다. // 랜덤 문자와 숫자 g.setColor (random.nextint (88), random.nextint (120), random.nextint (90)); random color g. (index+3,) 18); sbuffer.append (ch [index]); // 무작위로 얻은 문자를 버퍼 시리즈} request.getSession (). setAttribute ( "newCode", sbuffer.toString ())에 넣습니다. 포 그라운드} / ** * @ @httpservlet#dopost (httpservletrequest 요청, httpservletresponse 응답) * / 보호 된 void dopost (httpservletrequest 요청, httpservletrepsonse 응답) servletexception, ioexception, ioexception {// tho auto geterated get get get, resonge); }}체크 코드 (확인 코드 확인 서블릿)
@webservlet ( "/checkcode") public class checkcode 확장 httpservlet {private static final long serialversionuid = 1l; / ** * @httpservlet#httpservlet () */ public CheckCode () {super (); // TODO 자동 생성 생성자 스텁}/ ** * @ @httpservlet#doget (httpservletrequest 요청, httpservletreponse responsk) */ protected void doget (httpservletrequest 요청) 응답 .SetchAracterEncoding ( "UTF-8"); 문자열 code = request.getParameter ( "code"). toupperCase (); // 확인 코드를 가져 와서 CASE 변환 문자열 result = null; if (request.getSession (). getAttribute ( "newCode"). Equals (code)) {result = "verification success!"; Response.getWriter (). Append (결과); } else {result = "검증 코드 오류!"; Response.getWriter (). Append (결과); }} / ** * @ @httpservlet#dopost (httpservletrequest request, httpservletresponse response) * / protected void dopost (httpservletrequest 요청, httpservletrepsonse 응답) servletexception, ioexception, ioexception, ioexception {// wor auto-genderated method (요청, 응답); }}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.