我為什么開始關注這些jar包呢
我在復習jsp時遇到一個問題,就是在jsp文件中寫out.println()時,println()這個方法它報錯了,
但我是按着書上面敲得代碼,為什么我這個就報錯了呢,於是我就先運行了,結果頁面上能夠正常顯示!!!
奇怪了,我當時就納悶了,為什么idea都爆紅了,他還能正常顯示呢?然后我就找到jsp編譯的.class文件,我發現out
這個對象對應的JspWriter
類無法查看
然后我就想到了沒有導入jsp的jar包,導如jar包后果然就不報紅了。
報紅的問題解決后,再來解決在報紅(沒有導jsp的jar包)的狀態下還能正常顯示的問題
聰明的同學應該想到了,沒錯,就是我此篇博客的標題,tomcat中集成了大量的jar包,包括jsp的,所以在運行這個jsp文件時,發現WEB-INF
目錄中沒有jar包,會使用tomcat中集成的jar包
同樣的思想,我又試了試將servlet
的jar包去掉,結果也是可以運行
jar包沖突問題
就是你在寫代碼時導入的jar包會和tomcat中集成的jar包產生沖突
到目前為止我寫代碼時導入的jar包還沒有產生過沖突,不放心的話,可以在導包的時候設置一下
使用Maven的話就在導入依賴時加一個<scope>
標簽,標簽內部設置為provided,表示只能作用在編譯和測試時,具體作用我就不在這贅述了,感興趣的可以自己百度
<dependency>
<groupId>javax.servlet.jsp</groupId>e
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>