选择哪个依赖
javax包下都是jdk提供接口规范,由第三方服务器厂商自己来实现。
jsp-api的依赖发生如下了2次迁移:
javax.servlet.jsp-api>javax.servlet.jsp.jsp-api>javax.servlet.jsp.javax.servlet.jsp-api
所以最新的jsp依赖包应该是javax.servlet.jsp.javax.servlet.jsp-api
。
同样,servlet-api依赖也发生了如下迁移:
javax.servlet.servlet-api==>javax.servlet.javax.servlet-api
如果再发生迁移或弃用,请到maven中央仓库查看变更。
Maven中这样引入两个依赖:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<javax.servlet-api.version>4.0.1</javax.servlet-api.version> // 请自行选择最新版本号
<javax.servlet.jsp-api.version>2.3.3</javax.servlet.jsp-api.version>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${javax.servlet-api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>${javax.servlet.jsp-api.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<scope>provided</scope>
表示作用域为provided
,即只在编译、测试环境下使用,该依赖包再运行时(比如JDK或像Tomcat这样的容器)中提供,不需要再打包(jar/war)时加进去,不然会和运行时的包冲突。