javax.servlet.jsp.JspException cannot be resolved to a type 和 javax.servlet.jsp.PageContext cannot be resolved to a type 解决办法
今天我从码云上拉一个项目下来,是个maven项目,闲来无事自己研究研究,发现刚拉下来,项目就有报错,我一看是httpServletRequest cannot be resolved to a type, 应该是少了servlet的jar包,直接在pom.xml中添加了这个servlet的依赖,这个依赖的域范围要改成provided 即:
1 <dependency> 2 <groupId>javax.servlet</groupId> 3 <artifactId>javax.servlet-api</artifactId> 4 <version>${servlet.version}</version> 5 <scope>provided</scope> 6 </dependency>
发现错误变成了标题上的两个错误,这两个错误都是没有jsp的jar包导致的,我果断再加了一个依赖:
1 <dependency> 2 <groupId>javax.servlet</groupId> 3 <artifactId>jsp-api</artifactId> 4 <version>2.0</version> 5 <scope>provided</scope> 6 </dependency>
这样就不报错了,项目正常启动,第一次我这个jsp-api的域范围没有设置为provided,启动项目就报错
报的是:
1 Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/mybatisplus-spring-mvc]]
然后我改了jsp-api的作用域就ok了,这里解释下为什么要将这两个依赖的作用域设置为provided,这是因为我使用的是maven内置的tomcat插件启动的项目,而tomcat本身就
自带了这两个jar包,如果你设置为默认的,会将这两个jar包打包进去,就会造成重复,和Tomcat里自带的相冲突。
大家看一下就明白了
当然如果你使用的是maven内置的插件jetty的话,就不用设置这个域的范围!
解决方法二:
选择你的项目,右击build path -》Config Build Path.. ->libraries->Add External JARS..
然后选择你本机器上的Tomcat,选择它里面的jsp-api.jar
然后一路确定就可以了。
如有不对的地方,欢迎指正!
越努力越幸运