⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 randomcodeservlet.java

📁 五种不同功能的jsp验证码提供下载
💻 JAVA
字号:
package web;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.util.Random;
import javax.imageio.ImageIO;

import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;

public class RandomCodeServlet extends HttpServlet {
    //\u00D1é\u00D6¤\u00C2\u00EB\u00CD\u00BC\u00C6\u00AC\u00B5\u00C4\u00BFí\u00B6\u00C8\u00A1\u00A3
    private int width = 60;
    //\u00D1é\u00D6¤\u00C2\u00EB\u00CD\u00BC\u00C6\u00AC\u00B5\u00C4\u00B8\u00DF\u00B6\u00C8\u00A1\u00A3
    private int height = 20;

    protected void service(HttpServletRequest req, HttpServletResponse resp) throws
            ServletException, java.io.IOException {
        BufferedImage buffImg = new BufferedImage(width, height,
                                                  BufferedImage.TYPE_INT_RGB);
        Graphics2D g = buffImg.createGraphics();

        //\u00B4\u00B4\u00BD¨\u00D2\u00BB\u00B8\u00F6\u00CB\u00E6\u00BBú\u00CA\u00FD\u00C9ú\u00B3\u00C9\u00C6÷\u00C0à\u00A1\u00A3
        Random random = new Random();

        g.setColor(Color.WHITE);
        g.fillRect(0, 0, width, height);

        //\u00B4\u00B4\u00BD¨×\u00D6\u00CC\u00E5\u00A3\u00AC×\u00D6\u00CC\u00E5\u00B5\u00C4\u00B4ó\u00D0\u00A1\u00D3\u00A6\u00B8\u00C3\u00B8ù\u00BE\u00DD\u00CD\u00BC\u00C6\u00AC\u00B5\u00C4\u00B8\u00DF\u00B6\u00C8\u00C0\u00B4\u00B6¨\u00A1\u00A3
        Font font = new Font("Times New Roman", Font.PLAIN, 18);
        //\u00C9è\u00D6\u00C3×\u00D6\u00CC\u00E5\u00A1\u00A3
        g.setFont(font);

        //\u00BB\u00AD±\u00DF\u00BFò\u00A1\u00A3
        g.setColor(Color.BLACK);
        g.drawRect(0, 0, width - 1, height - 1);

        //\u00CB\u00E6\u00BBú\u00B2ú\u00C9ú160\u00CC\u00F5\u00B8\u00C9\u00C8\u00C5\u00CF\u00DF\u00A3\u00AC\u00CA\u00B9\u00CD\u00BC\u00CFó\u00D6\u00D0\u00B5\u00C4\u00C8\u00CF\u00D6¤\u00C2\u00EB\u00B2\u00BB\u00D2×±\u00BB\u00C6\u00E4\u00CBü\u00B3\u00CC\u00D0ò\u00CC\u00BD\u00B2\u00E2\u00B5\u00BD\u00A1\u00A3
        g.setColor(Color.GRAY);
        for (int i = 0; i < 160; i++) {
            int x = random.nextInt(width);
            int y = random.nextInt(height);
            int xl = random.nextInt(12);
            int yl = random.nextInt(12);
            g.drawLine(x, y, x + xl, y + yl);
        }

        //randomCode\u00D3\u00C3\u00D3\u00DA±\u00A3\u00B4\u00E6\u00CB\u00E6\u00BBú\u00B2ú\u00C9ú\u00B5\u00C4\u00D1é\u00D6¤\u00C2\u00EB\u00A3\u00AC\u00D2\u00D4±\u00E3\u00D3\u00C3\u00BB§\u00B5\u00C7\u00C2\u00BC\u00BAó\u00BD\u00F8\u00D0\u00D0\u00D1é\u00D6¤\u00A1\u00A3
        StringBuffer randomCode = new StringBuffer();
        int red = 0, green = 0, blue = 0;

        //\u00CB\u00E6\u00BBú\u00B2ú\u00C9ú4\u00CE\u00BB\u00CA\u00FD×\u00D6\u00B5\u00C4\u00D1é\u00D6¤\u00C2\u00EB\u00A1\u00A3
        for (int i = 0; i < 4; i++) {
            String strRand = String.valueOf(random.nextInt(10));

            //\u00B2ú\u00C9ú\u00CB\u00E6\u00BBú\u00B5\u00C4\u00D1\u00D5\u00C9\u00AB·\u00D6\u00C1\u00BF\u00C0\u00B4\u00B9\u00B9\u00D4ì\u00D1\u00D5\u00C9\u00AB\u00D6\u00B5\u00A3\u00AC\u00D5\u00E2\u00D1ù\u00CA\u00E4\u00B3\u00F6\u00B5\u00C4\u00C3\u00BF\u00CE\u00BB\u00CA\u00FD×\u00D6\u00B5\u00C4\u00D1\u00D5\u00C9\u00AB\u00D6\u00B5\u00B6\u00BC\u00BD\u00AB\u00B2\u00BB\u00CD\u00AC\u00A1\u00A3
//            red = random.nextInt(110);
//            green = random.nextInt(50);
//            blue = random.nextInt(50);

            //\u00BD\u00AB\u00D1é\u00D6¤\u00C2\u00EB\u00BB\u00E6\u00D6\u00C6\u00B5\u00BD\u00CD\u00BC\u00CF\u00F1\u00D6\u00D0\u00A1\u00A3
//            g.setColor(new Color(red, green, blue));
            
            g.setColor(Color.BLUE);
            g.drawString(strRand, 13 * i + 6, 16);

            //\u00BD\u00AB\u00B2ú\u00C9ú\u00B5\u00C4\u00CB\u00C4\u00B8\u00F6\u00CB\u00E6\u00BBú\u00CA\u00FD×é\u00BA\u00CF\u00D4\u00DA\u00D2\u00BB\u00C6\u00F0\u00A1\u00A3
            randomCode.append(strRand);
        }
        //\u00BD\u00AB\u00CB\u00C4\u00CE\u00BB\u00CA\u00FD×\u00D6\u00B5\u00C4\u00D1é\u00D6¤\u00C2\u00EB±\u00A3\u00B4\u00E6\u00B5\u00BDSession\u00D6\u00D0\u00A1\u00A3
        HttpSession session = req.getSession();
        session.setAttribute("randomCode", randomCode.toString());

        //\u00BD\u00FB\u00D6\u00B9\u00CD\u00BC\u00CF\u00F1\u00BB\u00BA\u00B4\u00E6\u00A1\u00A3
        resp.setHeader("Pragma", "no-cache");
        resp.setHeader("Cache-Control", "no-cache");
        resp.setDateHeader("Expires", 0);

        resp.setContentType("image/jpeg");

        //\u00BD\u00AB\u00CD\u00BC\u00CF\u00F1\u00CA\u00E4\u00B3\u00F6\u00B5\u00BDServlet\u00CA\u00E4\u00B3\u00F6\u00C1÷\u00D6\u00D0\u00A1\u00A3
        ServletOutputStream sos = resp.getOutputStream();
        ImageIO.write(buffImg, "jpeg", sos);
        sos.close();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -