版权声明:转发者请注明地址哦-----kuls的博客-一个正在疯狂学习的大学生- https://blog.csdn.net/qq_36547531/article/details/82250477
最近学javaweb,来做个笔记记录一下。
创建一个code.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>切换验证码</title>
</head>
<body>
</body>
<center>
<h2>切换验证码</h2>
<script>
// 获取identity元素
// 为了让浏览器发送请求到servlet, 所以一定要改变src
function changeImageCode() {
document.getElementById('identity').src='code?ts='+new Date().getTime();
}
</script>
<image src="code" id="identity"></image>
<input type="button" value="看不清验证码" id="btn" onclick="changeImageCode()"/>
</center>
</html>
然后创建一个servlet
package cn.kuls.demo1;
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;
@WebServlet(name = "yzmServlet",urlPatterns = "/code")
public class yzmServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int width = 100;
int height = 30;
String data = "asdsdsd1212f5fd";
Random random = new Random();
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics graphics = image.getGraphics();
graphics.setColor(Color.gray);//这一次设置矩形颜色
graphics.fillRect(0,0,width,height);//矩形绘制
graphics.setColor(Color.BLACK);//这一次设置即将绘制的字符颜色
for(int i = 0;i<4;i++){
int position = random.nextInt(data.length());
String substring = data.substring(position, position + 1);//随机截取字符串
graphics.drawString(substring,width/5*(i+1),15); //调用drawString,在图片上绘制字符
}
ImageIO.write(image,"jpg", response.getOutputStream()); //将图片格式化到输出流中
}
}
然后就实现了!