maven构建的web项目如果要使用HttpServletRequest或者PageContext等servlet或者jsp的api时,需要引入servlet-api和jsp-api,为什么我们之前的dynamic web project不需要引入呢?因为以前的dynamic web project run as 在server之上,server里面本来就有这两个jar包呀,比如tomcat:
使用maven开发web项目就需要自己引入这两个jar包了,<scope></scope> 改为provided这点大家都是知道的,我在这里强调的是引入正确的版本,因为你到maven仓库上面去搜索的话,会出现多个,让你不知道选择哪一个:
这里我们选择的都是上面红框中的版本,版本选择错了,很可能会导致代码出错的。
如下是pom文件:
<!-- serlvet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>