#### 3、验证码功能

 

验证怎么来的?

 

- 前端实现

- 后端实现,需要用到 Java 的图片类,生产一个图片

 

```java

package com.kuang.servlet;

 

import javax.imageio.ImageIO;

import javax.servlet.ServletException;

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;

 

public class ImageServlet extends HttpServlet {

    @Override

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //如何让浏览器3秒自动刷新一次;

        resp.setHeader("refresh","3");

        

        //在内存中创建一个图片

        BufferedImage image = new BufferedImage(80,20,BufferedImage.TYPE_INT_RGB);

        //得到图片

        Graphics2D g = (Graphics2D) image.getGraphics(); //笔

        //设置图片的背景颜色

        g.setColor(Color.white);

        g.fillRect(0,0,80,20);

        //给图片写数据

        g.setColor(Color.BLUE);

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

        g.drawString(makeNum(),0,20);

 

        //告诉浏览器,这个请求用图片的方式打开

        resp.setContentType("image/jpeg");

        //网站存在缓存,不让浏览器缓存

        resp.setDateHeader("expires",-1);

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

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

 

        //把图片写给浏览器

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

    }

 

    //生成随机数

    private String makeNum(){

        Random random = new Random();

        String num = random.nextInt(9999999) + "";

        StringBuffer sb = new StringBuffer();

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

            sb.append("0");

        }

        num = sb.toString() + num;

        return num;

    }

 

    @Override

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        doGet(req, resp);

    }

}

```

13:Response验证码实现

 

注册

13:Response验证码实现

 

13:Response验证码实现

 

 

 

 

 

相关文章:

  • 2021-12-12
  • 2022-12-23
  • 2021-12-03
  • 2021-12-04
  • 2021-07-20
  • 2021-06-27
  • 2021-12-14
  • 2022-01-08
猜你喜欢
  • 2021-06-27
  • 2022-12-23
  • 2021-12-11
  • 2021-05-24
  • 2021-09-09
  • 2021-09-09
  • 2022-01-16
相关资源
相似解决方案