生成验证码

一、调用验证码

<img src='/Web应用名/CreateCode'/>


二、生成验证码

public class CreateCode extends HttpServlet{

    public void doGet(HttpServletRequest request,HttpServletResponse response)

           throwsServletException, IOException {

       // 7.禁止浏览器缓存随机图片

       response.setDateHeader("Expires", -1);

       response.setHeader("Cache-Control", "no-cache");

       response.setHeader("Pragma", "no-cache");

       //6.通知客户机以图片方式打开发送过去的数据

       response.setHeader("Content-Type", "image/jpeg");

       //1.在内存中创建一副图片

       BufferedImageimage = new BufferedImage(60, 30,

              BufferedImage.TYPE_INT_RGB);

       //2.向图片上写数据

       Graphics g = image.getGraphics();

       // 设背景色

       g.setColor(Color.BLACK);

       g.fillRect(0,0, 60, 30);

       //3.设置写入数据的颜色和字体

       g.setColor(Color.RED);

       g.setFont(new Font(null,Font.BOLD, 20));

       //4.向图片上写数据

       String num =makeNum();

       //这句话就是把随机生成的数值,保存到session

       request.getSession().setAttribute("checkcode",num); 通过session就可以直接去到随即生成的验证码了

       g.drawString(num,0, 20);

       //5.把写好数据的图片输出给浏览器

       ImageIO.write(image,"jpg",response.getOutputStream());

    }

    //该函数时随机生成7位数字

    publicString makeNum() {

       Random r = newRandom();

       //9999999可以生成7

       String num =r.nextInt(9999) + "";

       StringBuffersb = new StringBuffer();

       //如果不够4位,前面补零

       for (int i =0; i < 4 - num.length(); i++) {

           sb.append("0");

       }

       num =sb.toString() + num;

       return num;

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值