javax.servlet-api引入的问题

javax.servlet-api引入的问题

在之前的springMVC中引入了spring-webmvc后,并没有引入javax.servlet,运行程序时,也没有报错
但是为什么在这个章节中的9分34秒左右,提到了springmvc运行时底层以来就是javax.servlet-api
我很疑惑,为什么之前在springMVC章节中却没有引入也没有报错,在SSM整合中就会报错呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小蓝 2025-03-24 10:24:14

同学你好,同学的理解都是正确的。实际开发时也会经常有这种操作,即运行环境中已经安装过的依赖,在项目打包时不会将这些依赖打包进去。

祝学习愉快~

Luckin_frank 提问者 2025-03-22 15:45:34

老师,我查了一下,也看了以前写的代码,我现在是这样理解的哈:

    首先在阶段三,Servlet 那一章节中,其实后面的课程提到了scope这个标签,将其设置为 provided 即,只在编译和测试时使用,不会打包到最终的构件中,这样做的原因是因为 Tomcat 中提供了 javax.servlet-api 所以不需要,但是编译和测试时,在代码中引用了这个类,所以需要引入这个依赖。

    其次,在 23 周,SpringMVC截器 那一章节也是这样,因为定义Interceptor需要将请求进行传递或者直接拦截停止传递,这也用到了 HttpServletRequest 等等,这些代码也是属于 编译和测试时使用,显示的引用了 javax.servlet-api中的代码,所以需要引入,但是当编译发布时,则不需要,所以为 provided

    最后就是现在的 SpringMVC 进行测试时,因为测试阶段外部工具-IDEA 没有这个类,所以会报错,所以需要进行引入,但是当发布到tomcat服务器中时,就不需要了,所以也为 provided。

老师,您看,这样对不?😂


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java工程师 2024版
  • 参与学习       2053    人
  • 提交作业       1490    份
  • 解答问题       1316    个

2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师