简易的验证码图片的生成

简易的验证码图片的生成

1.验证码作用:
防止恶意提交表单注册数据。
2.生成验证码图片的servlet类的代码:

package cn.zzz.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.sql.Connection;
import java.util.Random;

@WebServlet("/CheckImageServlet")
public class CheckImageServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设定画的图片的宽,高
        int width = 100;
        int height = 50;
        //创建一个内存图片对象
        BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_3BYTE_BGR);

        //添加图片中的内容
        //填充背景色
        Graphics g = image.getGraphics();//创建画笔对象
        g.setColor(Color.PINK); //设置画笔颜色
        g.fillRect(0,0,width,height);//从0,0填充到width,height
        //图片边框
        g.setColor(Color.BLUE);
        g.drawRect(0,0,width-1,height-1); //画边框,从0,0到width-1,height-1

        //定义一串用来随机的字符串
        String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        //生成随机的角标
        Random random = new Random();
        for (int i =1 ;i < 5 ;i++)
        {
            int index = random.nextInt(str.length());//生成随机的角标
            char c = str.charAt(index);//获取随机角标的字符
            //写验证码
            g.drawString(c+"",width/5*i,height/2);
        }
        //画绿色的干扰线
        g.setColor(Color.GREEN);
        //生成随机的坐标点
        for (int i = 0; i < 5; i++) {
            int x1 = random.nextInt(width);
            int x2 = random.nextInt(width);
            int y1 = random.nextInt(height);
            int y2 = random.nextInt(height);
            g.drawLine(x1,y1,x2,y2);
        }

        //展示图片
        ImageIO.write(image,"jpg",response.getOutputStream());
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);
    }
}

Over.

你可能感兴趣的:(java)