栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Response——验证码功能的实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Response——验证码功能的实现

验证码功能

验证码怎么来的?

  • 前端实现
  • 后端实现,需要用到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 {

        //如何让浏览器5秒自动刷新一次
        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("exprise",-1);
        resp.setHeader("Cache-Control","no-cache");
        resp.setHeader("Pragma","no-cache");


        //把图片写给浏览器
        boolean write = ImageIO.write(image, "jpg",resp.getOutputStream());

    }

    //生成随机数
        private  String makeNum(){
            Random random = new Random();
            String num = random.nextInt(9999999)+ "";
            StringBuffer sb = new StringBuffer();
            //保证是7位数,如果不是,就追加0
            for(int i=0;i<7-num.length();i++){
                sb.append("0");
            }
            String s = sb.toString()+num;
            return  num;
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

  • web.xml

 
        ImageServlet
        com.kuang.servlet.ImageServlet
    
    
        ImageServlet
        /img
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014756.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号