关于tomcat中集成的jar包问题

在tomcat中集成了一些jar包,就放在tomcat的lib文件夹下。初学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>

 

posted @ 2022-03-28 21:14  成事  阅读(685)  评论(0编辑  收藏  举报