자바 인증 코드
22398 단어 자바
1
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
import javax.imageio.ImageIO;
public final class GraphicHelper {
/**
* ,
*
* @param width
*
* @param height
*
* @param imgType
*
* @param output
* ( )
* @return ( )
*/
public static String create(final int width, final int height, final String imgType, OutputStream output) {
StringBuffer sb = new StringBuffer();
Random random = new Random();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics graphic = image.getGraphics();
graphic.setColor(Color.getColor("F8F8F8"));
graphic.fillRect(0, 0, width, height);
Color[] colors = new Color[] { Color.BLUE, Color.GRAY, Color.GREEN, Color.RED, Color.BLACK, Color.ORANGE,
Color.CYAN };
// " " ( 50 )
for (int i = 0; i < 50; i++) {
graphic.setColor(colors[random.nextInt(colors.length)]);
final int x = random.nextInt(width);
final int y = random.nextInt(height);
final int w = random.nextInt(20);
final int h = random.nextInt(20);
final int signA = random.nextBoolean() ? 1 : -1;
final int signB = random.nextBoolean() ? 1 : -1;
graphic.drawLine(x, y, x + w * signA, y + h * signB);
}
// " "
graphic.setFont(new Font("Comic Sans MS", Font.BOLD, 30));
for (int i = 0; i < 6; i++) {
final int temp = random.nextInt(26) + 97;
String s = String.valueOf((char) temp);
sb.append(s);
graphic.setColor(colors[random.nextInt(colors.length)]);
graphic.drawString(s, i * (width / 6), height - (height / 3));
}
graphic.dispose();
try {
ImageIO.write(image, imgType, output);
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
}
2
import java.io.IOException;
import java.io.OutputStream;
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;
@WebServlet(urlPatterns = "/verify/regist.do" )
public class VerifyCodeServlet extends HttpServlet {
private static final long serialVersionUID = 3398560501558431737L;
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//
HttpSession session = request.getSession();
// URI ( )
String uri = request.getRequestURI();
System.out.println("hello : " + uri);
final int width = 180; //
final int height = 40; //
final String imgType = "jpeg"; // ( MIME )
final OutputStream output = response.getOutputStream();
//
// ( )
//
String code = GraphicHelper.create(width, height, imgType, output);
System.out.println(" : " + code);
// uri ( )
session.setAttribute(uri, code);
System.out.println(session.getAttribute(uri));
}
}
3 html
<html>
<head>
<meta charset="UTF-8">
<title> title>
<link rel="stylesheet" href="styles/general.css">
<link rel="stylesheet" href="styles/cell.css">
<link rel="stylesheet" href="styles/form.css">
<script type="text/javascript" src="js/ref.js">script>
<style type="text/css" >
.logo-container {
margin-top: 50px ;
}
.logo-container img {
width: 100px ;
}
.message-container {
height: 80px ;
}
.link-container {
height: 40px ;
line-height: 40px ;
}
.link-container a {
text-decoration: none ;
}
style>
head>
<body>
<div class="container form-container">
<form action="/wendao/regist.do" method="post">
<div class="form">
<div class="form-row">
<span class="cell-1">
<i class="fa fa-user">i>
span>
<span class="cell-11" style="text-align: left;">
<input type="text" name="username" placeholder=" ">
span>
div>
<div class="form-row">
<span class="cell-1">
<i class="fa fa-key">i>
span>
<span class="cell-11" style="text-align: left;">
<input type="password" name="password" placeholder=" ">
span>
div>
<div class="form-row">
<span class="cell-1">
<i class="fa fa-keyboard-o">i>
span>
<span class="cell-11" style="text-align: left;">
<input type="password" name="confirm" placeholder=" ">
span>
div>
<div class="form-row">
<span class="cell-7">
<input type="text" name="verifyCode" placeholder=" ">
span>
<span class="cell-5" style="text-align: center;">
<img src="/demo/verify/regist.do" onclick="myRefersh(this)">
span>
div>
<div class="form-row" style="border: none;">
<span class="cell-6" style="text-align: left">
<input type="reset" value=" ">
span>
<span class="cell-6" style="text-align:right;">
<input type="submit" value=" ">
span>
div>
div>
form>
div>
body>
html>
4. 리 셋
function myRefersh( e ) {
const source = e.src ; // src
//console.log( "source : " + source ) ;
var index = source.indexOf( "?" ) ; // source ? ( -1 )
//console.log( "index : " + index ) ;
if( index > -1 ) { // ?
var s = source.substring( 0 , index ) ; // source index ( index index )
//console.log( "s : " + s ) ;
var date = new Date(); // Date
var time = date.getTime() ; // Date
e.src = s + "?time=" + time ; // src
//console.log( e.src ) ;
} else {
var date = new Date();
e.src = source + "?time=" + date.getTime();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.