- package com.servlet;
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.image.BufferedImage;
- import java.io.IOException;
- import java.util.Random;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.imageio.ImageIO;
- public class Image extends HttpServlet {
- public void destroy() {
- }
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- this.doPost(request, response);
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- // 设置编码格式
- response.setContentType("image/jpeg");
- // 创建图片的大小
- int width = 85;
- int height = 20;
- // 创建一个img对象
- BufferedImage img = new BufferedImage(width, height,
- BufferedImage.TYPE_INT_RGB);
- Random ran = new Random();
- // 得到画笔
- Graphics g = img.getGraphics();
- // 设置画笔的样式
- Color c = g.getColor();
- Font f = g.getFont();
- g.setColor(Color.pink);// 设置背景色
- g.fillRect(0, 0, width, height); // 填充背景色
- // 文字的操作
- StringBuffer sb = new StringBuffer();
- g.setFont(new Font("黑体", Font.BOLD, 16));
- for (int i = 0; i < 4; i++) {
- g.setColor(new Color(ran.nextInt(100), ran.nextInt(100), ran
- .nextInt(100)));
- String num = String.valueOf(ran.nextInt(10));
- g.drawString(num, i * 20 + 10, 15);
- sb.append(num);
- }
- // 恢复默认的画笔
- g.setColor(c);
- g.setFont(f);
- // 给服务器保存验证码字符串
- request.getSession().setAttribute("yan", sb);
- // 缓存清空
- response.setHeader("Pragma", "no-store"); // 本地机是否产生缓存文件
- response.setDateHeader("expires", 0); // 生效时间
- response.setHeader("Pragma", "no-cache"); // 清空
- // 输出图片
- ImageIO.write(img, "jpeg", response.getOutputStream());
- }
- }
Servlet实现页面验证功能随机生成图片
最新推荐文章于 2024-06-15 12:13:19 发布