通过jsp-api体验jar包之间的冲突

我们在index.jsp写一个EL表达式:${pageContext.request.contextPath },可以看到,在写到.request时是没有提示的,而在写到.contextPath时提示又有了,这是因为pageContext是属于jsp-api.jar的,我们没有把这个依赖加进来,所以没有提示,request是属于servlet-api.jar的,它的运行时环境(也就是依赖)我们已经导进来了,所以它后面有提示
所以我们要把jsp-api.jar的依赖也导入到pom.xml

<dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1.3-b06</version>
            <scope>provided</scope>
        </dependency>

这样就可以有提示也不报错了
这里说个小技巧:可以看到对于这种在项目中提示有错误
这里写图片描述
但是打开jsp页面后又什么都没有的错误
这里写图片描述
我们可以
这里写图片描述
在上图中Quick Access中输入Problems
这里写图片描述
这样我们就可以看到错误了

如果我们将下面代码中的<scope>provided</scope>改为<scope>compile</scope>,可能会出现很严重的问题,报一个空指针异常java.lang.NullPointerException,(为什么说可能呢?在我的电脑上测试时我怎么弄也没把这个异常弄出来,但是在学习的视频里是会报异常的………)这个是因为你导入的jar包冲突导致的,因为有的jar包Tomcat服务器上已经有了的,但是你又使用compile依赖范围把重复的jar包部署上去了,所以会报错

<dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1.3-b06</version>
            <scope>provided</scope>
        </dependency>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值