发布时间:2025-12-10 19:20:18 浏览次数:6
第一次使用filter时报错Error filterStart[通俗易懂]filter过滤启用就报错,终于找到两全其美的办法
我是刚学习过滤器,首次使用就遇到这么大的坑,吭哧了三个小时,网上各种方法都看了,都不好用,我的问题是这样的,不使用filter时网页的运行完全正常,一旦写入filter过滤器立即报错
重大: Exception starting filter com.itheima.filter.FilterDemojava.lang.AbstractMethodError: javax.servlet.Filter.init(Ljavax/servlet/FilterConfig;)Vat com.itheima.filter.FilterDemo.init(FilterDemo.java:16)at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)2 22, 2022 2:22:18 午後 org.apache.catalina.core.StandardContext startInternal重大: Error filterStart2 22, 2022 2:22:18 午後 org.apache.catalina.core.StandardContext startInternal 是否还在为Ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!
【正版授权,激活自己账号】:Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】:官方授权 正版激活 自己使用,支持Jetbrains家族下所有IDE…
后来终于发现是因为tomcat的版本问题:tomcat8.5不支持web.xml4.0。
一种解决方法就是:降低web.xml版本为3.0系列目前,tomcat8.5不支持4.0web.xml 。9.0tomcat容器支持4.0web.xml
但是我的是正在进行中的项目,而且我的tomcat是写在pom文件中的插件,据说插件最高只支持7的版本,而web.xml进入到之前设置页面已经无法更改版本了
这张图片可以看到修改版本选项已经没有了。
当时想从头再做一遍操作,但是终于发现了一个方法,就是在实现filter的类中重写三个方法,记住,必须是重写,写啥都行,我的代码是这样的
@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("我被堵住了"); } @Override public void init(FilterConfig filterConfig) throws ServletException { // Filter.super.init(filterConfig); System.out.println("init---"); } @Override public void destroy() { // Filter.super.destroy(); System.out.println("destory---"); }} 之后成功解决问题