package com.example.demotomcat.servlet;
import javax.imageio.ImageIO;
import javax.servlet.;
import javax.servlet.http.;
import javax.servlet.annotation.;
import java.awt.;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
@WebServlet(name = “HttpServletCheckCode”, value = “/HttpServletCheckCode”)
public class HttpServletCheckCode extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int height = 50;
int width = 100;
//1、 创建一个对象,在内存中保存图片
BufferedImage imag = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
//2、 美化图片
Graphics g = imag.getGraphics();
g.setColor(Color.PINK); //设置画笔颜色
g.fillRect(0,0, width, height); //填充颜色
g.setColor(Color.BLUE);
g.drawRect(0,0, width-1, height-1); //画边框
String code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
// 设置字体大小
Font font = new Font("Arial", 20, 30);
g.setFont(font);
Random ran = new Random();
int[] wid = new int[]{15, 35, 55, 75};
for(int i : wid){
int index = ran.nextInt(code.length());
char ch = code.charAt(index);
g.drawString(ch+"", i, 25);
}
// 画干扰线
g.setColor(Color.GREEN);
for(int i = 0; i<10; i++){
int x1 = ran.nextInt(width);
int x2 = ran.nextInt(width);
int y1 = ran.nextInt(width);
int y2 = ran.nextInt(width);
g.drawLine(x1,y1,x2,y2);
}
//3、 将图片输出到页面展示
ImageIO.write(imag, "jpg", response.getOutputStream());
}
}
<img id="checkCode" src="/demoTomcat/HttpServletCheckCode" style="height: 50px;width: 100px" />
<a id="change" href="">看不清换一张?</a>