모두가 검증 코드를 알고 있으며 그 기능에 대해 더 많이 말할 필요는 없습니다. 분명하지 않은 경우 Baidu Encyclopedia의 설명을 참조하십시오. 일반적으로 검증 코드의 생성은 문자 (숫자, 문자 또는 중국어 등)를 무작위로 생성 한 다음이 생성 된 문자를 그림에 그린 다음 다양한 줄과 같은 그림에 방해 요소를 추가하는 것입니다. 좋아요, 말도 안되는 말을하고 읽어 보자.
간단한 로그인 페이지 (코드가 완료되지 않았으며 확인 코드 부분 만)
<%@ page language = "java"import = "java.util.*"pageEncoding = "utf-8"%> <! doctype html public "-// w3c // dtd html 4.01 전환 // en"> <html> <head> <title> verification code </<prict type = "text/javascrip" "" 데이터 필터링 = "필터링 된"> </span> <span style = "화이트 공간 : pre"> </span> // js 검증 코드를 새로 고침하는 함수 <span style = "흰색 공간 : pre"> </span> function changecode () {<스팬 스타일 = "화이트 공간 : pre"> </span> var imgnode = document.getElemgByid ( "vimg"); <span style = "화이트 공간 : pre"> </span> // verification 코드를 다시로드하여 새로 고침 <스팬 스타일 = "화이트-공간 : pre"> </span> imgnode.src = "servlet/emubleservlet? t =" + math.random (); // 브라우저 캐시 문제 <span style = "화이트 스페이스 : pre"> </span>} </script> </script> </head> <body> <form action = "checkservlet"method = "post"> <label> 입력 확인 코드 </label> <br/> <input type = "text"name = "randomcode"/> <img id = "vimg"on Click = "changecode ()"; src = "servlet/emugimageservlet"> <br/> <input type = "제출"value = "제출"> </form> </body> </html>Session.getAttribute ( "Rand")를 통해 생성 된 검증 코드를 얻은 다음 사용자 입력과 비교 한 다음 해당 처리가 비교 결과에 따라 수행됩니다.
서블릿을 통해 검증 코드 생성 :
패키지 com.util.servlet; import java.awt.color; Java.awt.Font 가져 오기; java.awt.graphics 가져 오기; java.awt.image.bufferedimage import; import java.io.ioexception; java.util.random import; import javax.imageio.imageio; javax.servlet.servletexception import; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.servlet.http.httpsession; public class interimageservlet는 httpservlet {private static final string content_type = "text/html; charset = gb2312"; // 문자 크기를 설정, 개인 글꼴 mfont = 새로운 글꼴 ( "Times New Roman", font.plain, 17); public void init ()는 servletexception {super.init (); } color getRandColor (int fc, int bc) {random random = new random (); IF (FC> 255) FC = 255; IF (BC> 255) BC = 255; int r = fc+random.nextint (bc-fc); int g = fc+random.nextint (bc-fc); int b = fc+random.nextint (bc-fc); int b = fc+random.nextint (bc-fc); 새로운 색을 반환합니다 (R, G, B); } public void service (httpservletrequest 요청, httpservletResponse 응답) servletexception, ioexception {response.setheader ( "pragma", "no-cache"); Response.SetHeader ( "Cache-Control", "No-Cache"); response.setDateHeader ( "만료", 0); // 생성 된 응답이 이미지 응답임을 나타냅니다. int 너비 = 100, 높이 = 18; BufferedImage image = 새로운 BufferedImage (너비, 높이, BufferedImage.type_int_rgb); 그래픽 g = image.getGraphics (); 랜덤 random = new random (); G. 세트 콜러 (GetRandColor (200,250)); G.FillRect (1, 1, width-1, height-1); G. 세트 컬러 (새로운 색상 (102,102,102)); G.DrawRect (0, 0, width-1, height-1); G. 세트 폰트 (mfont); G. 세트 콜러 (GetRandColor (160,200)); // (int i = 0; i <155; i ++) {int x = random.nextInt (너비 -1); int y = random.nextInt (높이 -1); int xl = random.nextint (6) + 1; int yl = random.nextint (12) + 1; G.DrawLine (X, Y, X + XL, Y + YL); } // (int i = 0; i <70; i ++) {int x = random.nextInt (width -1); int y = random.nextInt (높이 -1); int xl = random.nextint (12) + 1; int yl = random.nextint (6) + 1; G.DrawLine (x, y, x -xl, y -yl); } // 랜덤 숫자를 생성하고 임의 숫자를 문자로 변환 strand = ""; for (int i = 0; i <6; i ++) {int itmp = random.nextint (26)+65; char ctmp = (char) itmp; srand += string.valueof (ctmp); G.setColor (새 색상 (20+random.nextInt (110), 20+random.nextInt (110), 20+random.nextInt (110)); G.DrawString (String.Valueof (CTMP), 15*i+10,16); } httpsession session = request.getSession (true); session.setattribute ( "rand", srand); g.dispose (); imageio.write (image, "jpeg", response.getOutputStream ()); }}web.xml의 서블릿 구성 정보 :
<? 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/web-app_2_502_5.xsd"> <servlet> <servlet-name> authimageservlet </servletervlet> <servlet-class> com.util.servlet.authimageservlet </servlet-class> </servlet> <servlet-mapping> <servlet-name> interimageservlet </servlet-name> <Url-pattern>/servlet/empllegervlet </url-pattern> </servlet-mapping> <welcome-list> index> </welcome-file> </web-app>
이러한 방식으로, 검증 코드 함수가 구현되며, 이는 매우 간단하고 실용적입니다. 물론 더 아름답고 엄격한 방법이 있습니다. 관심있는 친구들은 깊이 공부할 수 있습니다. 여기서 나는 당신과 비교적 간단한 방법을 공유 할 것입니다. 모두 나를 비판하고 수정하는 것을 환영합니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.