关于tomcat中集成的jar包问题
我为什么开始关注这些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>