原因:
在我们编写servlet时 HttpServletRequest和HttpServletResponse 等对象的是由servlet-api提供的,不导入servlet-api我们无法获取相应对象,但是在运行中,tomcat中也有这些对象,为了防止冲突,在配置pom文件时,在servlet-api 下设置作用范围provided,指该依赖不进行打包,该工程在运行tomcat时就会使用tomcat中的HttpServletRequest对象,在编译时使用servlet-api 的对象。
依赖范围 | 编译classpath | 测试classpath | 运行classpath | 例子 |
---|---|---|---|---|
compile | Y | Y | Y | logback |
test | - | Y | - | Junit |
provided | Y | Y | - | servlet-api |
runtime | - | Y | Y | jdbc驱动 |
system | Y | Y | - | 存储在本地的jar包 |