Servlet和JSP生成动态图片验证码

这是由Servlet和jsp代码生成的图片验证码
主要功能是可以实现在网页上生成一个图片验证码,通过点击事件可以进行动态的切换。
Servlet2.java文件

package MyServlet;

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.util.Random;

@WebServlet(urlPatterns = "/Servlet2")
public class Servlet2 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //创建图片对象
        BufferedImage image = new BufferedImage(200, 100, BufferedImage.TYPE_INT_RGB);
        //创建画布对象
        Graphics2D g = image.createGraphics();
        //填充
        g.setColor(Color.cyan);//选颜色
        g.fillRect(0,0,200,100);//选择坐标轴和宽高
        //生成随机数
        String string="abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPGRSTUVWXYZ";
        StringBuffer buffer = rand(string);
        //写入文字
        g.setColor(Color.BLACK);
        g.setFont(new Font("黑体",Font.ITALIC,64));
        g.drawString(buffer.toString(),0,64);
        g.drawLine(0,0,200,100);
        g.drawLine(100,0,0,200);
        //把图片内容输出相应
        resp.setContentType("imag/png");//设置文件格式
        ImageIO.write(image,"png",resp.getOutputStream());


    }

    private StringBuffer rand(String string) {
        Random random = new Random();
        StringBuffer buffer = new StringBuffer();
        for(int i=0;i<4;i++){
            buffer=buffer.append(string.charAt(random.nextInt(string.length())));
        }
        return buffer;
    }
}

color1.jsp文件

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2019/1/12
  Time: 14:45
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>color</title>
    <script>
        function fun1() {
            document.getElementById("d").src="/Servlet2?a="+new Date().getTime();
        }
    </script>
</head>
<body>
<!-- http://localhost:8080/jsp/Servlet2-->
<!--http://localhost:8080-->
    <img src="/Servlet2" id="d" onclick="fun1()">
</body>
</html>

猜你喜欢

转载自blog.csdn.net/lr1916417519/article/details/86471711
今日推荐