我在用SSH框架做网站时(不是maven工程),把struts2框架的过滤配置写好时,启动服务器就报错了:Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1449)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1257)
这是我的配置:
```xml
<filter>
<!-- 配置Struts2核心Filter的名字 -->
<filter-name>struts2</filter-name>
<!-- 配置Struts2核心Filter的实现类 -->
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- 配置Filter拦截的URL -->
<filter-mapping>
<!-- 配置Struts2的核心FilterDispatcher拦截所有用户请求 -->
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
然后我查了一天的资料,都没搞定。struts2我尝试了三个版本都还是这样!!真的是崩溃了,今天一天什么都没弄,这个玩意儿真烦人!!!!
希望有大佬帮帮我!!
存在jar包冲突或者版本问题。
servlet-api包呀,你这是在tomcat上运行的吗,tomcat的会默认提供,如果没提供的可以自己找下加进去
解决:修改pom.xml文件,
去除
<scope>provided</scope>,
增加
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency
https://blog.csdn.net/f746262041/article/details/121195990
那个配置的
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
那个类可以点进去不了
https://repo1.maven.org/maven2/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar
这个是 2.5 版本
空指针异常要么是环境没配好,要么就是代码错了,仔细检查下
解决了就好,恭喜!