1.前言
Java EE 8及之后的版本中,Servlet API的维护权转交给了Eclipse Foundation的Jakarta EE社区,因此Servlet API的包名从“javax.servlet”更改为“jakarta.servlet”。Oracle将Java EE捐赠给了Eclipse基金会,并从JavaEE 8开始被正式更名为Jakarta EE
2.tomcat
在 Tomcat 9.0.x 版本中,javax 包含了一系列 Java Servlet、Java WebSocket 和 Java EL 扩展包,例如 javax.servlet、javax.websocket 和 javax.el 等等,版本号为 4.0。
在 Tomcat 10.0.x 版本中,由于 Java EE 的迁移,javax 被替换成了 jakarta。因此,Tomcat 10.0.x 版本中的 jakarta 包含了一系列的 Jakarta Servlet、Jakarta WebSocket 和 Jakarta EL 扩展包,例如 jakarta.servlet、jakarta.websocket 和 jakarta.el 等等,版本号为 5.0。
做法:虽然 Tomcat 10.0.x 中的包名已经改为 jakarta,但是这些包的 API 和功能与之前的 javax 包保持兼容,因此开发人员可以在迁移应用程序时逐步将包名替换为 jakarta。
最新版tomcat11同理,只要改一下javax包名即可!!!
3.导入依赖包后,新版idea没有create new servlet
自己手动创建一个文件,然后把基本代码框架写上,之后单独保存这个文件。方便之后写java的servlet代码!!!
4.总结
tomcat10版本以上不能用javax开头的了,要用Jakarta开头的。
做法:尽管包名发生了变化,但API的核心功能和用法并没有大的改变,大多数代码可以无缝地迁移到新的包名下,只需要修改导入语句和相应的依赖。