当前位置:网站首页>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
边栏推荐
- ES6 deletes an attribute in all array objects through map, deconstruction and extension operators
- A fan summed up so many interview questions for you. There is always one you need!
- Mobile phone battery - current market situation and future development trend
- Maximum entropy model
- Write the first CUDA program
- Why can't it run (unresolved)
- Trading software programming
- Future source code view -juc series
- The difference between lambda expressions and anonymous inner classes
- 0 basic learning C language - nixie tube dynamic scanning display
猜你喜欢
Should enterprises start building progressive web applications?
Who moved my code!
Huawei cloud micro certification Huawei cloud computing service practice has been stable
IPv6 experiment
Some other configurations on Huawei's spanning tree
Small program graduation project based on wechat examination small program graduation project opening report function reference
Yyds dry goods inventory it's not easy to say I love you | use the minimum web API to upload files
When tidb meets Flink: tidb efficiently enters the lake "new play" | tilaker team interview
How can enterprises optimize the best cost of cloud computing?
Applet graduation project based on wechat selection voting applet graduation project opening report function reference
随机推荐
Feign implements dynamic URL
C import Xls data method summary I (upload files and create Workbooks)
C import Xls data method summary V (complete code)
JVM performance tuning and practical basic theory - medium
Development of user-defined navigation bar in uniapp
MySQL deadly serial question 2 -- are you familiar with MySQL index?
Avoid playing with super high conversion rate in material minefields
MySQL -- Introduction and use of single line functions
Force deduction solution summary 1189- maximum number of "balloons"
2022 R2 mobile pressure vessel filling certificate examination and R2 mobile pressure vessel filling simulation examination questions
Containerization technology stack
C import Xls data method summary III (processing data in datatable)
Flex flexible layout, box in the middle of the page
Stringutils and collectionutils
Summary of common tools and technical points of PMP examination
Human resource management online assignment
The force deduction method summarizes the single elements in the 540 ordered array
Audio resource settings for U3D resource management
IPv6 experiment
Iclr2022 | ontoprotein: protein pre training integrated with gene ontology knowledge