• 大小: 29KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: Java
  • 标签: 验证码  

资源简介

JavaWeb项目生成随机验证码,使用IDEA开发,可以导入到Eclipse和MyEclipse中

资源截图

代码片段和文件信息

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 javax.servlet.http.HttpSession;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;

/**
 * Created by HE on 2016/9/18.
 */
@WebServlet(name = “AuthCode“)
public class AuthCode extends HttpServlet {
    private static final int WIDTH = 60;//设置验证码图片宽度
    private static final int HEIGHT = 20;//设置验证码图片高度
    private static final int LENGTH = 4;//设置验证码长度
    //设置验证码随机出现的字符
    private static final String str = “1234567890“ +
            “abcdefghijklmnopqrstuvwxyz“ +
            “ABCDEFGHIJKLMNOPQRSTUVWXYZ“;
    char[] chars = str.toCharArray();//将字符放在数组中方便随机读取
    private static Random random = new Random();

    protected void doGet(HttpServletRequest request HttpServletResponse response) throws ServletException IOException {

        //设置输出的类型为图片
        response.setContentType(“image/jpeg“);

        //设置不进行缓存
        response.setHeader(“pragma“ “no-cache“);
        response.setHeader(“cache-control“ “no-cache“);
        response.setHeader(“expires“ “0“);

        BufferedImage image = new BufferedImage(WIDTH HEIGHT BufferedImage.TYPE_3BYTE_BGR);

        //画笔
        Graphics graphics = image.getGraphics();

        //设置背景颜色并绘制矩形背景
        graphics.setColor(Color.WHITE);
        graphics.fillRect(0 0 WIDTH HEIGHT);

        //用于记录生成的验证码
        String code = null;

        //生成验证码并绘制
        for (int i = 0; i < LENGTH; i++) {
            String c = ““ + chars[random.nextInt(str.length())];
            graphics.setColor(getColor());
            graphics.drawString(c 10 * i + 10 18);
            code += c;
        }

        //生成干扰点
        for (int i = 0; i < 50; i++) {
            graphics.setColor(getColor());
            graphics.drawOval(random.nextInt(60) random.nextInt(20) 1 1);
        }

        //将生成的验证码存入session中,以便进行校验
        HttpSession session = request.getSession();
        session.setAttribute(“code“ code);

        //绘制图片
        graphics.dispose();

        //将图片输出到response中
        ImageIO.write(image “JPEG“ response.getOutputStream());
    }

    //随机生成颜色
    private Color getColor() {
        return new Color(random.nextInt(255) random.nextInt(255) random.nextInt(255));
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-09-18 20:17  AuthCode\
     文件         335  2016-09-18 20:17  AuthCode\.classpath
     目录           0  2016-09-18 20:17  AuthCode\.idea\
     目录           0  2016-09-18 18:56  AuthCode\.idea\artifacts\
     文件         507  2016-09-18 18:56  AuthCode\.idea\artifacts\AuthCode_war_exploded.xml
     文件         686  2016-09-18 18:56  AuthCode\.idea\compiler.xml
     目录           0  2016-09-18 18:56  AuthCode\.idea\copyright\
     文件          76  2016-09-18 18:56  AuthCode\.idea\copyright\profiles_settings.xml
     文件         159  2016-09-18 18:56  AuthCode\.idea\encodings.xml
     文件        1161  2016-09-18 20:01  AuthCode\.idea\misc.xml
     文件         256  2016-09-18 18:56  AuthCode\.idea\modules.xml
     文件       53844  2016-09-18 20:17  AuthCode\.idea\workspace.xml
     文件         346  2016-09-18 20:17  AuthCode\.project
     文件         385  2016-09-18 20:17  AuthCode\AuthCode.eml
     文件         917  2016-09-18 18:56  AuthCode\AuthCode.iml
     文件          66  2016-09-18 20:17  AuthCode\AuthCode.userlibraries
     目录           0  2016-09-18 19:23  AuthCode\out\
     目录           0  2016-09-18 18:59  AuthCode\out\artifacts\
     目录           0  2016-09-18 20:02  AuthCode\out\artifacts\AuthCode_war_exploded\
     目录           0  2016-09-18 19:32  AuthCode\out\artifacts\AuthCode_war_exploded\img\
     文件        2123  2016-09-18 19:32  AuthCode\out\artifacts\AuthCode_war_exploded\img\g.png
     文件        1566  2016-09-18 19:32  AuthCode\out\artifacts\AuthCode_war_exploded\img\h.png
     文件         551  2016-09-18 20:02  AuthCode\out\artifacts\AuthCode_war_exploded\index.jsp
     目录           0  2016-09-18 19:34  AuthCode\out\artifacts\AuthCode_war_exploded\WEB-INF\
     目录           0  2016-09-18 20:09  AuthCode\out\artifacts\AuthCode_war_exploded\WEB-INF\classes\
     文件        3181  2016-09-18 20:09  AuthCode\out\artifacts\AuthCode_war_exploded\WEB-INF\classes\AuthCode.class
     文件         812  2016-09-18 19:34  AuthCode\out\artifacts\AuthCode_war_exploded\WEB-INF\classes\Servlet.class
     文件         559  2016-09-18 19:34  AuthCode\out\artifacts\AuthCode_war_exploded\WEB-INF\web.xml
     目录           0  2016-09-18 19:23  AuthCode\out\production\
     目录           0  2016-09-18 20:09  AuthCode\out\production\AuthCode\
     文件        3181  2016-09-18 20:09  AuthCode\out\production\AuthCode\AuthCode.class
............此处省略11个文件信息

评论

共有 条评论