Servlet版本冲突导致页面404

入门servlet前先准备好了Tomcat环境以及用Idea打了一个Servlet war包想看看效果,结果发现页面跳转一直报404错误,检查了跳转url,项目结构等情况后,问题依旧没有解决。最后偶然在网上看到了相关信息后终于找到问题原因。

原因

一直没有关注Java EE相关更新新闻,查询后才明白Servlet5.0已经将包命名空间从javax变成了jakarta,这就导致如果Tomcat里Servlex版本如果是最新版,而本地编译环境是早期版本,那么Tomcat解war包后程序无法正确通过import找到相关jar包。

解决方法

  1. 首先检查Servlet版本是否相同。

    1. 本地编译依赖环境可以直接打开pom.xml查看为4.0。

    2. Tomcat则需要先解压以下文件 ${baseDir}\apache-tomcat-10.0.16\lib\servlet-api.jar,然后查看META-INF文件夹下的MANIFEST.MF,可以看出版本为5.0。

      image-20220216085845891

    3. 修改pom.xml的Servlet依赖,改成5.0即可。

     <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>5.0.0</version>
            <scope>provided</scope>
     </dependency>
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第 01 章 Servlet 学好Servlet,有助于更好的学习交互层框架的应用以及真正掌握Web开发的业务设计...
    傅二毛阅读 343评论 0 0
  • maven eclipse配置: 切换镜像:在windows--preference--maven--user s...
    月明星稀_8184阅读 499评论 0 0
  • 1、Spring boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新...
    我从不砍柴阅读 340评论 0 0
  • Maven 主要内容 Maven的简介 简介 ​ Maven【[ˈmevən]】这个词可以翻译为"专家","内...
    yy666777阅读 252评论 0 0
  • 使用Spring Boot构建的WEB应用可以很方便的打成jar包发布,也可以打成war包发布到应用服务器中。自定...
    ilaoke阅读 11,753评论 1 1