当前位置:网站首页>Servlet simple verification code generation
Servlet simple verification code generation
2022-07-04 01:48:00 【Travel · lost road】
The essence : A picture
Purpose : Prevent malicious form registration
Servlet backstage :
import javax.imageio.ImageIO;
import javax.servlet.Servlet;
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 java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
@WebServlet("/checkCodeServlet")
public class CheckCodeServlet extends HttpServlet implements Servlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Set the height and width of the verification code image
int width = 100;
int height = 50;
//1. Create an object , Picture in memory ( Captcha image object )
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//2. Beautify the picture
//2.1 Fill background color
Graphics g = image.getGraphics();// Brush object
g.setColor(Color.white);
g.fillRect(0,0,width,height);
//2.2 Picture frame
g.setColor(Color.black);
g.drawRect(0,0,width-1,height-1);
String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
// Generate random corners
Random r = new Random();
for (int i = 1; i <= 4; i++) {
int index = r.nextInt(str.length());
// Character acquisition
char ch = str.charAt(index);
//2.3 Write verification code
g.drawString(ch+"",width/5*i,height/2);
}
//2.4 Drew interference
g.setColor(Color.green);
// Randomly generate coordinate points
for (int i = 0; i < 6; i++) {
int x1 = r.nextInt(width);
int x2 = r.nextInt(width);
int y1 = r.nextInt(height);
int y2 = r.nextInt(height);
g.drawLine(x1,y1,x2,y2);
}
//3. Output the picture to the page to show
ImageIO.write(image,"jpg",response.getOutputStream());
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);
}
}HTML front end :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
window.onload = function () {
var img = document.getElementById("checkCode")
img.onclick = function () {
// Time stamp
var date = new Date().getTime();
img.src = "/day15/checkCodeServlet?"+date;
}
}
</script>
</head>
<body>
<img id="checkCode" src="/day15/checkCodeServlet">
<a id="change" href=""> I can't see it clearly. Change it ?</a>
</body>
</html>The effect is as follows :

Its beautification can be modified as needed
边栏推荐
- Ka! Why does the seat belt suddenly fail to pull? After reading these pictures, I can't stop wearing them
- Infiltration learning diary day19
- Huawei cloud micro certification Huawei cloud computing service practice has been stable
- Functions and arrays of shell scripts
- Trading software programming
- Notice on Soliciting Opinions on the draft of information security technology mobile Internet application (APP) life cycle security management guide
- Write the first CUDA program
- Jerry's modification setting status [chapter]
- Jerry's synchronous weather information to equipment [chapter]
- Intel's new GPU patent shows that its graphics card products will use MCM Packaging Technology
猜你喜欢

Basic editing specifications and variables of shell script

Applet graduation design is based on wechat course appointment registration. Applet graduation design opening report function reference

Override and virtual of classes in C #

Who moved my code!

Lightweight Pyramid Networks for Image Deraining

Force buckle day32

How programmers find girlfriends through blind dates

Iclr2022 | ontoprotein: protein pre training integrated with gene ontology knowledge

Small program graduation project based on wechat examination small program graduation project opening report function reference

SQL statement
随机推荐
Infiltration learning diary day19
C import Xls data method summary V (complete code)
Neo4j learning notes
Since the "epidemic", we have adhered to the "no closing" of data middle office services
Solution to the problem that jsp language cannot be recognized in idea
Query efficiency increased by 10 times! Three optimization schemes to help you solve the deep paging problem of MySQL
HackTheBox-baby breaking grad
MySQL utilise la vue pour signaler les erreurs, Explicit / show ne peut pas être publié; Verrouillage des fichiers privés pour la table sous - jacente
Ka! Why does the seat belt suddenly fail to pull? After reading these pictures, I can't stop wearing them
Who moved my code!
Idea if a class cannot be found, it will be red
JVM performance tuning and practical basic theory - medium
Luogu p1309 Swiss wheel
Jerry's watch information type table [chapter]
Conditional statements of shell programming
Meta metauniverse female safety problems occur frequently. How to solve the related problems in the metauniverse?
Small program graduation project based on wechat video broadcast small program graduation project opening report function reference
Hash table, string hash (special KMP)
Jerry's update contact [article]
[typora installation package] old typera installation package, free version