Java网络开发(Tomcat)——遇到的 bug 汇总(持续更新)_一个或多个筛选器启动失败

密码要输入正确:

 // TODO:静态方法错误,导致项目启动失败
        String password = "123";

另一种情况:

报错信息:

java.lang.NoClassDefFoundError: Could not initialize class com.tianju.util.DBUtils

在这里插入图片描述

2.由于之前的错误,Context[/day01]启动失败【困扰】

困扰一上午的bug

报错信息:

org.apache.catalina.core.StandardContext.startInternal 一个或多个筛选器启动失败。完整的详细信息将在相应的容器日志文件中找到

org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[/day01]启动失败

问题描述:

在启动项目的时候就报错,报错信息是 一个或多个筛选器启动失败,然后删除了项目中所有的过滤器,还是报错,上网查了解决方案,有说是项目结构的问题,几种说法汇总如下:

在这里插入图片描述

第一种说法:项目的输出路径设置成\WEB-INF\classes;没有解决该问题

在这里插入图片描述

在这里插入图片描述

第二种说法:项目的输出要配置,如下图,配置完成后,也没有解决该问题

在这里插入图片描述

第三种说法,在项目中添加jar包,新建lib目录,然后导入相关的包;也没有解决该问题

在这里插入图片描述

以上几种方式,尝试过后都无效,最后突发奇想,既然是web项目,那如果把servlet的文件全部删除,项目都没有servlet了,那肯定能启动起来,结果把servlet文件全部删除后,项目成功启动起来;

从而把问题定位到了servlet这里,仔细查看servlet文件后,发现了最终的原因,是因为一个servlet的注解@WebServlet(“/user/login”),不小心设置成了@WebFilter(“/user/info”),所以启动不起来,再回过头来看,报错信息确实是对的,就是一个或多个筛选器启动失败;但是这个报错信息没有定位到代码部分,所以查起来就比较麻烦。

在这里插入图片描述

解决方案:

把@WebFilter(“/user/info”)改成,@WebServlet(“/user/info”)

3.启动过滤器异常—init方法

报错信息:

org.apache.catalina.core.StandardContext.filterStart 启动过滤器异常[com.tianju.filter.LoginAuthorServlet]

问题描述:

配置了一个过滤器,过滤器也实现了doFilter方法,但是项目就是启动不起来,过滤器启动异常,导致项目启动不起来,报错;

在这里插入图片描述

原因:

原因是tomcat8.5的过滤器需要实现init方法,如果不实现,就会报错,tomcat高版本才支持不实现;

解决方法:

实现init方法:

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("DemoFilter init");
    }

4.过滤器不可用异常—写成了@WebServlet

报错信息:写成了@WebServlet @WebFilter(“/*”)

Servlet[com.tianju.filter.CharacterEncodingFilter]当前不可用

在这里插入图片描述

5.无报错—过滤器没有放行

如果忘记放行,项目可以启动,但所有资源都不可访问

在这里插入图片描述

6.静态方法DBUtils报错的几种情况

DBUtils中的静态方法错误,导致项目启动失败:

报错信息:

15-Jun-2023 12:22:01.865 信息 [localhost-startStop-2] org.apache.catalina.core.StandardWrapper.unload 正在等待为Servlet[com.tianju.servlet.user.LoginService]释放[1]实例
15-Jun-2023 12:22:02.184 严重 [Druid-ConnectionPool-Create-88061993] com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl.error create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/javaweb?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true, errorCode 1045, state 28000
java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)

项目能够启动起来,但是单击登陆后,前端没有反应,后端一直报错,不断刷新;

报错原因:

Access denied for user ‘root’@‘localhost’ (using password: YES)

在这里插入图片描述

解决方案:

密码要输入正确:

 // TODO:静态方法错误,导致项目启动失败
        String password = "123";

另一种情况:

报错信息:

java.lang.NoClassDefFoundError: Could not initialize class com.tianju.util.DBUtils

在这里插入图片描述

报错信息:

严重 [Druid-ConnectionPool-Create-1816424755] com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl.error create connection SQLException, url: jdbc:mysql:😕/127.000.0.1:3306/javaweb?useSSL!!!=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true, errorCode 0, state null
java.sql.SQLException: connect error, url jdbc:mysql:😕/127.000.0.1:3306/javaweb?useSSL!!!=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true, driverClass com.mysql.cj.jdbc.Driver

在这里插入图片描述

Vue+Axios遇到的bug汇总

1.导包失败net:ERR ABORTED 404

报错信息:

GET http://localhost:8080/bootstrap/css/bootstrap.css net:ERR ABORTED 404

在这里插入图片描述

2.未定义错误msg is not defined,data写成date

报错信息:ReferenceError:msg is not defined

在这里插入图片描述

另一种情况,不太好找:

在这里插入图片描述

3.之前的form表单没有删

导致发送两次请求
在这里插入图片描述

在这里插入图片描述

4.没有加this,报未定义异常imgbtn is not defined

Uncaught (in promise) ReferenceError: imgbtn is not defined

在这里插入图片描述

5.post请求没加上下文,POST请求404,Uncaught (in promise)

报错信息:

http://localhost:8080/comUser/register/vue 404

Uncaught (in promise)
{message:‘Request failed with status code 404’,name:‘AxiosError’,

在这里插入图片描述

6.let app = new Vue没有加new

报错信息:

vue.min-v2.5.16.js:6 Uncaught TypeError: Cannot read properties of undefined (reading ‘_init’)

在这里插入图片描述

7.一个没有报错信息的bug–应该写在created里

在这里插入图片描述

8.一个报错定位不清楚的bug

报错信息:

Uncaught TypeError: e.bind is not a function

在这里插入图片描述

9.一个一堆人找了半天的bug:value写成vlaue

在这里插入图片描述
同上,不太好找的bug

在这里插入图片描述

10.属性里面写了插值表达式【困扰】

问题描述:
前端没有list页面数据,但是前端拿到了后端的响应数据,而且前端没有报错,原因是属性里面写了插值表达式

<%--    TODO:属性里面不能写插值表达式,也不报错--%>
<button @click="remove({{opus.id}})" class="btn btn-warning btn-sm">删除</button>


在这里插入图片描述解决方案:不要加插值表达式

<button @click="remove(opus.id)" class="btn btn-danger btn-sm">删除</button>

修改后果然出现了

在这里插入图片描述

JSP使用相关报错

1.后端传给jsp的数据,前端jsp不显示

问题描述:

后端传给jsp的数据,前端jsp没有显示出来,原因是官方生成的web.xml文件版本低,很多功能不支持,需要更换成下面这种

在这里插入图片描述

在这里插入图片描述

web.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app\_4\_0.xsd"
 version="4.0">
</web-app>

2.jsp的包没有导,用foreach方法的时候报错【困扰】

报错信息:

javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag

问题描述:

在jsp文件中,如果注释掉foreach部分的代码,前端jsp文件就能正常进入,也能显示从后端拿到的信息;

但是如果加上foreach部分的代码,就报错,后台的错误指向了servlet的转发部分;但其实是能进到这里的,所有这个问题查了好久,以为是req的问题,后来以为是foreach语法写错的问题;

最后突然想到,可能是xml包没导,最后补充了jsp相关的包,问题解决。

req.getRequestDispatcher("/news/list.jsp").forward(req, resp);

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

jsp相关的包:

  <!-- jsp导包-->
  <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.3.3</version>
    <!-- 加provided-->
    <scope>provided</scope>
  </dependency>

  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
  </dependency>

  <dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
  </dependency>

3.jsp的forEach方法报错

org.apache.jasper.JasperException: 在 [57] 行处理 [/news/list.jsp] 时发生异常

语法错误,多打印了一个h

在这里插入图片描述

4.jsp用foreach的时候,没有生成首行一段话

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>



![img](https://img-blog.csdnimg.cn/img_convert/9d73a29655a359c31196fe90b7c4f46f.png)
![img](https://img-blog.csdnimg.cn/img_convert/df59523110c156af5e47492b4b297a82.png)
![img](https://img-blog.csdnimg.cn/img_convert/e890ce9753e934162570a767986cf96a.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**

n: 在 [57] 行处理 [/news/list.jsp] 时发生异常

语法错误,多打印了一个h

在这里插入图片描述

4.jsp用foreach的时候,没有生成首行一段话

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>



[外链图片转存中...(img-hNvFmrB4-1719226980711)]
[外链图片转存中...(img-Mvi1iH7a-1719226980712)]
[外链图片转存中...(img-jQ45SQXW-1719226980713)]

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值