点击变化验证码Tomcat

package cn.kgc.code;

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 = "/yzm")
public class YzmServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //  创建画布
        int width = 120;
        int height = 40;
        BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        //  获得画笔
        Graphics g = bufferedImage.getGraphics();
        //  填充背景颜色
        g.setColor(Color.white);
        g.fillRect(0, 0, width, height);
        //  绘制边框
        g.setColor(Color.red);
        g.drawRect(0, 0, width - 1, height - 1);
        //  生成随机字符
        //  准备数据
        String data = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
        //  准备随机对象
        Random r = new Random();
        //  声明一个变量 保存验证码
        String code = "";
        //  书写4个随机字符
        for (int i = 0; i < 4; i++) {
            //  设置字体
            g.setFont(new Font("宋体", Font.BOLD, 28));
            //  设置随机颜色
            g.setColor(new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255)));

            String str = data.charAt(r.nextInt(data.length())) + "";
            g.drawString(str, 10 + i * 28, 30);

            //  将新的字符 保存到验证码中
            code = code + str;
        }
        //  绘制干扰线
        for (int i = 0; i < 6; i++) {
            //  设置随机颜色
            g.setColor(new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255)));

            g.drawLine(r.nextInt(width), r.nextInt(height), r.nextInt(width), r.nextInt(height));
        }

        //  将验证码 打印到控制台
        System.out.println(code);

        //  将验证码放到session中
        //request.getSession().setAttribute("code_session", code);

        //  将画布显示在浏览器中
        ImageIO.write(bufferedImage, "jpg", response.getOutputStream());
    }
}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>验证码</title>
</head>
<body>
    <img src="yzm" onclick="funChange()" id="yzm">
    <script>
        function funChange() {
            var yzm=document.getElementById("yzm");
            var date=new Date().getTime();
            yzm.src="yzm?a="+date;
        }
    </script>
</body>
</html>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当您点击Tomcat包中的startup文件时,如果出现闪退的情况,可能有以下几种原因: 1. 端口被占用:Tomcat启动时会占用一个端口,如果该端口被其他程序占用了,Tomcat就无法启动。您可以通过修改Tomcat的端口号来解决这个问题。 2. Java版本不匹配:Tomcat需要与特定版本的Java兼容,如果您的Java版本与Tomcat不匹配,可能会导致启动失败。您可以在Tomcat的文档中查找哪些Java版本是支持的,然后检查您的Java版本是否符合要求。 3. 内存不足:如果您的机器内存不足,Tomcat可能无法启动。您可以尝试关闭一些其他程序,释放内存。 4. 配置文件错误:如果您修改了Tomcat的配置文件,但是配置文件中有错误,可能会导致Tomcat无法启动。您可以检查配置文件,确保没有语法错误或者逻辑错误。 希望这些解决方案可以帮助您解决问题。 ### 回答2: 当Tomcat点击startup后闪退可能是由于以下几个原因: 1. 配置问题:可能是由于不正确的配置导致Tomcat无法正常启动。可以检查Tomcat的配置文件,如server.xml,web.xml等,确保所有配置项的路径、端口、文件名等都是正确的。 2. 内存不足:Tomcat需要一定的内存来运行,如果内存不足,可能会导致Tomcat无法正常启动。可以尝试增加系统内存,或者减少Tomcat所需的内存配置。 3. Java版本不兼容:Tomcat需要Java环境来运行,如果Java的版本与Tomcat不兼容,可能会导致启动失败。可以检查Java的版本,并根据Tomcat的要求选择合适的Java版本。 4. 日志文件:Tomcat启动时会生成日志文件,可能包含启动失败的原因。可以查看Tomcat的日志文件,如catalina.out,catalina.log等,以获取详细的错误信息,从而解决问题。 5. 依赖项缺失:Tomcat可能依赖一些其他的组件或库,如果缺少了这些依赖项,可能导致启动失败。可以检查Tomcat所需的依赖项,并确保它们已经正确安装和配置。 如果以上方法都无法解决问题,可以尝试重新下载和安装Tomcat,或者寻求相关技术人员的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值