1. 서문
검증 코드는 우리 삶에서 매우 일반적이라고 말할 수 있습니다. 모든 웹 사이트 나 앱 이이 기능을 갖추지 만 왜 이것이 필요합니까? 어떻게해야합니까? 아래에서 편집자는 모든 사람이 Java를 사용하여 검증 코드의 기능을 완료하게합니다.
2. 검증 코드의 기능
일반적으로 사람들이 로봇을 사용하여 배치에 자동으로 등록하고 특정 프로그램을 사용하여 등록 된 특정 사용자에게 계속 로그인하지 못하게 할 수 있습니다. 검증 코드는 숫자와 기호를 혼합하는 그림이기 때문에 인간의 눈이 인식하기가 어렵고 기계가 인식하기가 훨씬 어렵습니다.
3. Java 구현
3.1 확인 코드를위한 서블릿 클래스 설정 :
package com.bjpowernode.drp.util.servlet; import java.awt.color; import java.awt.font; import java.awt.graphics; import java.awt.image.bufferedimage; import java.io.ioexception; import java.util.random; import javax.image.imageoio.imageo.; javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.servlet.http.httpession.httportions. ares * */public class inderimage는 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 ()); } public void destroy () {}}3.2 Web-INF 파일에서 web.xml의 서블릿 구성
// Servlet 이름 및 위치 <Servlet> <servlet-name> 인증 </servlet-name> <servlet-class> com.bjpowernode.drp.util.servlet.authlet-class> </servlet> // Servlet는 해당 매핑에서 작동합니다 <Servlet-Mapping> <servlet-name> authiMage </servle-name> <Url-pattern>/servlet/login/inderimage </url-pattern> </servlet-mapping>
3.3 프론트 데스크는 서블릿을 호출합니다
JSP 코드 :
<img id = "img"style = "커서 : 포인터;" src = "$ {pagecontext.request.contextpath}/servlet/login/emplicage"onclick = "changeimg ()">JS :
// 확인 코드를 클릭하여 이미지 함수를 변경하여 changeimg () {var img = document.getElementById ( "IMG"); img.src = "$ {pagecontext.request.contextpath}/servlet/login/emugimage? d ="+math.random (); 거짓 반환;}4. 요약
이 검증 코드의 학습을 통해 전체 서블릿과 프론트 엔드 코드 사이의 상호 작용에 대한 특정 이해를 얻었으며 데이터 전송도 크게 향상되었습니다. 따라서 여전히 이러한 기술에 대해 더 많이 배우고 앞으로도 요약해야합니다. 이런 식으로 만 지식은 견고 할 수 있습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.