引言:在一个项目中使用Servlet时,自己陷入一个坑。我在项目中需要使用servlet 3.0以上版本,所以引入了jar包时引入了servlet-api.jar 的3.0-alpha-1版本,maven配置如下:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet.version}</version>
</dependency>
在使用这个jar包时 servlet 容器也能够正常加载,可以正常使用,但在我需要使用java配置的方式注册一个监听器时,却发现这个jar中ServletContext接口中没有我需要的addListener()方法。经各方资料查询,我将jar 包更换为 javax.servlet-api 便解决了这个问题。maven配置:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
查阅资料得知:
servlet.jar 是servlet 3.0 版本之前的地址
javax.servlet-api.jar 是servlet 3.0 版本之后的地址