当前位置:网站首页>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
边栏推荐
- 2020-12-02 SSM advanced integration Shang Silicon Valley
- I don't know why it can't run in the project and how to change it
- Gee: create a new feature and set corresponding attributes
- Introduction to superresolution
- 求esp32C3板子連接mssql方法
- The force deduction method summarizes the single elements in the 540 ordered array
- C import Xls data method summary IV (upload file de duplication and database data De duplication)
- Logical operator, displacement operator
- Cancer biopsy instruments and kits - market status and future development trends
- Hunan University | robust Multi-Agent Reinforcement Learning in noisy environment
猜你喜欢
![Jerry's synchronous weather information to equipment [chapter]](/img/a9/e09bbf62161ea8ba60b0fce3fb5f89.jpg)
Jerry's synchronous weather information to equipment [chapter]

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

Make drop-down menu

Since the "epidemic", we have adhered to the "no closing" of data middle office services

Gee: create a new feature and set corresponding attributes

Do you know the eight signs of a team becoming agile?

Rearrangement of tag number of cadence OrCAD components and sequence number of schematic page

Solution to the problem that jsp language cannot be recognized in idea

Who moved my code!

Conditional test, if, case conditional test statements of shell script
随机推荐
Make drop-down menu
After listening to the system clear message notification, Jerry informed the device side to delete the message [article]
Use classname to modify style properties
C library function int fprintf (file *stream, const char *format,...) Send formatted output to stream
Summary of common tools and technical points of PMP examination
1189. Maximum number of "balloons"
Méthode de calcul de la connexion MSSQL de la carte esp32c3
Writeup (real questions and analysis of ciscn over the years) of the preliminary competition of national college students' information security competition
Jerry's watch listens to the message notification of the target third-party software and pushes the message to the device [article]
A fan summed up so many interview questions for you. There is always one you need!
Query efficiency increased by 10 times! Three optimization schemes to help you solve the deep paging problem of MySQL
Who moved my code!
Jerry's watch information type table [chapter]
Small program graduation project based on wechat reservation small program graduation project opening report reference
Maximum likelihood method, likelihood function and log likelihood function
IPv6 experiment
51 MCU external interrupt
0 basic learning C language - nixie tube dynamic scanning display
Applet graduation project is based on wechat classroom laboratory reservation applet graduation project opening report function reference
Jerry's modification setting status [chapter]