자바 인증 코드 의 전체 인 스 턴 스 코드 만 들 기
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);
}
}
총결산자바 가 인증 코드 를 만 드 는 완전한 인 스 턴 스 코드 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 인증 코드 의 전체 코드 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.