SSM 로그 인 인증 코드 기능 구현(소스 코드 첨부)
Kaptcha 프레임 의 사용 은 매우 간단 합 니 다.신출내기 필수.
https://www.jb51.net/article/152260.htm
효과 도
구현 코드
첫 번 째 단계:우선 RandomValidate Code.java 를 도구 클래스 로 만 듭 니 다.아래 코드 를 직접 복사 해서 붙 여 넣 으 면 됩 니 다.
package com.utils;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class RandomValidateCode {
public static final String RANDOMCODEKEY = "randomcode_key";// session key
private Random random = new Random();
private String randString = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//
private int width = 80;//
private int height = 26;//
private int lineSize = 40;//
private int stringNum = 4;//
/**
*
*/
public void getRandcode(HttpServletRequest request,
HttpServletResponse response) {
HttpSession session = request.getSession();
//BufferedImage Image ,Image
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
// Image Graphics ,
Graphics g = image.getGraphics();
g.fillRect(0, 0, width, height);
g.setFont(new Font("Times New Roman",Font.ROMAN_BASELINE,18));
g.setColor(getRandColor(160, 200));
//
for(int i=0;i<=lineSize;i++){
drowLine(g);
}
//
String randomString = "";
for(int i=1;i<=stringNum;i++){
randomString=drowString(g,randomString,i);
}
session.removeAttribute(RANDOMCODEKEY);
session.setAttribute(RANDOMCODEKEY, randomString);
g.dispose();
try {
//
ImageIO.write(image, "JPEG", response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
}
/*
*
*/
private Font getFont(){
return new Font("Fixedsys",Font.CENTER_BASELINE,18);
}
/*
*
*/
private Color getRandColor(int fc,int bc){
if(fc > 255)
fc = 255;
if(bc > 255)
bc = 255;
int r = fc + random.nextInt(bc-fc-16);
int g = fc + random.nextInt(bc-fc-14);
int b = fc + random.nextInt(bc-fc-18);
return new Color(r,g,b);
}
/*
*
*/
private String drowString(Graphics g,String randomString,int i){
g.setFont(getFont());
g.setColor(new Color(random.nextInt(101),random.nextInt(111),random.nextInt(121)));
String rand = String.valueOf(getRandomString(random.nextInt(randString.length())));
randomString +=rand;
g.translate(random.nextInt(3), random.nextInt(3));
g.drawString(rand, 13*i, 16);
return randomString;
}
/*
*
*/
private void drowLine(Graphics g){
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(13);
int yl = random.nextInt(15);
g.drawLine(x, y, x+xl, y+yl);
}
/*
*
*/
public String getRandomString(int num){
return String.valueOf(randString.charAt(num));
}
}
두 번 째 단계:Controller 클래스 에 전단 UI 를 쓰 는 인터페이스
/**
* UI
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
@RequestMapping(value="/checkCode")
public void checkCode(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// ,
response.setContentType("image/jpeg");
// ,
response.setHeader("pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expire", 0);
RandomValidateCode randomValidateCode = new RandomValidateCode();
try {
randomValidateCode.getRandcode(request, response);//
} catch (Exception e) {
e.printStackTrace();
}
}
세 번 째 단계:jsp 페이지 에서 인증 코드 가 져 오기
<img src="checkCode" alt="" width="100" height="32" class="passcode" style="height:43px;cursor:pointer;" onclick="this.src=this.src+'?'">
STEP 4:저 는 SSM 환경 에서 이 루어 졌 습 니 다.그렇지 않 으 면 스스로 고 쳐 쓸 수 있 습 니 다.총결산
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 SSM 로그 인 인증 코드 기능 입 니 다.여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Systems Manager를 사용하여 애플리케이션 인벤토리 가져오기각 EC2 인스턴스에서 애플리케이션 인벤토리를 가져와 중앙 집중식 계정 S3 버킷에 저장합니다. s3 버킷에서 정보를 쿼리하기 위해 Glue, Athena(다른 계정에서)를 통합하고 있습니다. 각 계정(일회성 활동)...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.