文章目录
验证码演示代码
- 验证码演示代码
- 请求资源路径为什么要添加一个随机数的参数
package priv.lwx.javaex.servlet_demo.web.servlet.response;
import javax.imageio.ImageIO;
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;
/**
* 验证码示例代码
*
* @author liaowenxiong
* @date 2022/1/10 11:01
*/
@WebServlet("/check_code")
public class CheckCodeServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int width = 100; // 表示图片的宽度,单位像素
int height = 50; // 表示图片的高度,单位像素
// 1.创建一个图片对象,代表内存中的验证码图片。图片对象创建好之后,就表示在内存中创建了一个图片(内存中存储的是二进制数据),图片背景色默认黑色
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
// 2.美化图片
// 2.1.填充背景色
// 先获取画笔
Graphics graphics = image.getGraphics();
// 设置画笔的颜色为粉红色
graphics.setColor(Color.PINK);
// 填充矩形
graphics.fillRect(0, 0, width, height);
// 2.2.画边框
// 设置画笔的颜色为蓝色
graphics.setColor(Color.BLUE);
// 画边框
graphics.drawRect(0, 0, -1, height - 1);
// 画随机字符
// 随机字符的来源
String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
// 创建随机数对象
Random ran = new Random();
// 2.3.画随机字符。循环四次,画4个随机的字符
for (int i = 1; i
注册界面
window.onload = function () {
var img = document.getElementById("checkCode");
var link = document.getElementById("changeCode");
// 给图片元素注册点击事件监听器
img.onclick = function () {
var date = new Date().getTime();
img.src = "/servlet_demo/check_code?" + date;
}
// 给超链接注册点击事件监听器
link.onclick = function () {
var date = new Date().getTime();
img.src = "/servlet_demo/check_code?" + date;
}
}
看不清楚换一张?