生成验证码代码

<span style="font-size:18px;">package aweiyo.servlet.response1;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.org.apache.commons.digester.rss.Image;

public class ResponseServlet7 extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
            int width=120;
            int height=30;
            //创建一张内存中的缓存图片
            BufferedImage bufferedimage=new BufferedImage(width,height, BufferedImage.TYPE_INT_RGB);
            
            //设置背景色
            Graphics graphics=bufferedimage.getGraphics();
            graphics.setColor(Color.yellow);
            graphics.fillRect(0, 0, width, height);
            
            //画边框
            graphics.setColor(Color.blue);
            graphics.drawRect(0, 0, width-1, height-1);//必须长宽都减一,否则覆盖了
            
            //写验证码内容
            graphics.setColor(Color.red);
            graphics.setFont(new Font("宋体", Font.BOLD, 18));
            String context ="1234567890qwertyuiopsadfghjklzxcvnbm";
            
            //从验证码内容中随机抽取四个字
            Random random=new Random();
            int x=30;//一个验证码的长
            int y=20;//一个验证码的宽
            for(int i=0;i<4;i++){
                int index=random.nextInt(context.length());
                char letter=context.charAt(index);
                graphics.drawString(letter+"", x, y);//把一个字符变成字符串最简便的方法是该字符+""
                x+=20;
            }
            //随机释放干扰线
            int x1,x2,y1,y2;
            graphics.setColor(Color.LIGHT_GRAY);
            for(int i=0;i<10;i++){
                x1=random.nextInt(width);
                x2=random.nextInt(width);
                y1=random.nextInt(height);
                y2=random.nextInt(height);
                graphics.drawLine(x1, y1, x2, y2);
            }
            //释放图形资源
            graphics.dispose();
            //将图片输出到浏览器  ImageIo
            //将内存的图片成3gp格式到浏览器
            ImageIO.write(bufferedimage, "jpg", response.getOutputStream());
            System.out.println("00");
    }

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

}

</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值