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

  然后一路確定就可以了。

如有不對的地方,歡迎指正!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM