자바 인증 코드 의 전체 인 스 턴 스 코드 만 들 기

JAVA 코드 인증 코드 제작,등록 등 기능 페이지 에 사용 가능
servlet-api.jar 패키지 가 져 오기
인증 코드 를 만 드 는 Util 도구 클래스:
먼저 그림 을 만 들 고 무 작위 인증 코드 자 모 를 생 성 합 니 다.

그림 의 바탕색 을 설정 하고 setFont 함수 로 인증 코드 를 그림 에 그립 니 다.인증 코드 를 어렵 게 하려 면 for 순환 코드 를 추가 하여 그림 에 회전 각 도 를 높 일 수 있 습 니 다.

인증 코드 에 간섭 선 을 증가 시 켜 안전성 을 높이다.

테두리 설정

VerifyPic 의 servlet 를 만 들 고 Util 류 를 통 해 코드 를 가 져 와 session 에 저장 한 다음 전단 페이지 로 보 냅 니 다.
实打
전단 페이지 인증 코드 는 다음 과 같 습 니 다.

전체 Util 도구 클래스 코드 는 다음 과 같 습 니 다.

package com.sport.util;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.util.HashMap;
import java.util.Map;

public class VerifyUtil {
 public static Map<String, Object> generateVerify(){
  //      
  BufferedImage verifyPic = new BufferedImage(120,40,BufferedImage.TYPE_3BYTE_BGR);
  //        
  Graphics2D g = verifyPic.createGraphics();
  //      +     
  String letters = "23456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  //        
  int verifyLength = 4;
  //       
  String verifyCode = "";
  //    
  for(int i=0; i<verifyLength; i++) {
   verifyCode +=letters.charAt((int)(Math.random()*letters.length()));
  }
  //          
  g.setColor(Color.white);
  g.fillRect(0, 0, 120, 40);
  //          
  g.setFont(new Font("    ",Font.BOLD, 24));
  for (int i = 0; i < verifyLength; i++) {
   //        
   double theta = Math.random() * Math.PI / 4 * ((int)(Math.random()*2) == 0?1:-1);
   //    
   g.rotate(theta, 24+i*22, 20);
   //                
   g.setColor(new Color((int)(Math.random()*256), (int)(Math.random()*256), (int)(Math.random()*256)));
   g.drawString(verifyCode.charAt(i)+"", 20+i*22 , 26);
   //  
   g.rotate(-theta, 24+i*22, 20);
  }
  //     
  for (int i = 0; i < 5; i++) {
   //     
   g.setColor(new Color((int)(Math.random()*256), (int)(Math.random()*256), (int)(Math.random()*256)));
   //  
   g.drawLine((int)(Math.random()*120), (int)(Math.random()*40),
     (int)(Math.random()*120), (int)(Math.random()*40));
  }
  //      
  g.setColor(Color.black);
  //         
  g.drawRect(0, 0, 118, 38);

  //           map
  Map<String, Object> data = new HashMap<String, Object>();
  data.put("verifyCode", verifyCode);
  data.put("verifyPic", verifyPic);

  return data;
 }
}
전체 VerifyPic 의 코드 는 다음 과 같 습 니 다.

package com.sport.servlet;

import com.sport.util.VerifyUtil;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Map;

@WebServlet("/VerifyPic")
public class VerifyPic extends HttpServlet {
 protected void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  Map<String, Object> data = VerifyUtil.generateVerify();
  //     
  String verifyCode = (String) data.get("verifyCode");
  //      session
  HttpSession session = request.getSession();
  session.setAttribute("verifyCode", verifyCode);
  //    
  BufferedImage verifyPic = (BufferedImage) data.get("verifyPic");
  //       ,     ImageIO
  ImageIO.write(verifyPic, "jpg", response.getOutputStream());

 }

 protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request, response);
 }
}
총결산
자바 가 인증 코드 를 만 드 는 완전한 인 스 턴 스 코드 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 인증 코드 의 전체 코드 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지원 바 랍 니 다!

좋은 웹페이지 즐겨찾기