我正在将servlet 4.0.1升级到Servlet5.0。我在servlet 4.0.1中使用了下面的maven依赖项
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
当我升级到Servlet5.0时,我发现有一个新的术语“雅加达”,servlet5附带了下面的maven依赖项的Jakarta。
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
</dependency>
所以,下面的问题我试着在网上搜索,但是找不到
如有任何参考文件,请另加参考。
发布于 2021-08-09 08:14:52
Servlet规范
你说过:
我正在将servlet 4.0.1升级到Servlet5.0。
不,这实际上不是一次升级。
除了从javax.*
到jakarta.*
包命名之外,Servlet规范在4.0到5.0之间没有明显的变化。
命名空间的这一变化是甲骨文公司将Java技术的责任转移到Eclipse基金会,成为雅加达EE的一个阶段。
从Servlet 4迁移到Servlet 5将不会从任何新特性或改进中获益。
相反,雅加达Servlet 6确实带来了显著的变化和改进。
防波堤
你评论说:
升级到Servlet5.0的主要原因是Jetty11。因为这是码头的先决条件。
Jetty 10与Jetty 11相同,但是包名从javax.*
更改为jakarta.*
。这两个版本是并行开发的。Jetty 11中没有比Jetty 10更好的特性或改进。
(顺便说一句,Apache 9.x和Tomcat 10.0是包命名更改的并行版本。)
如果您现在想保持保守,请使用Jetty 10和javax.*
包命名。如果您想为将来做准备,请使用Jetty11和jakarta.*
包命名。
有关于Oracle将Java控制权移交给Eclipse的文章、演讲和访谈,以及相应的名称更改到Jakarta。您真的应该对Oracle到雅加达这个主题做一些基本的行业研究,以了解变化。从维基百科开始。
发布于 2021-08-09 06:19:59
Oracle维护了Java,在2017年9月,Oracle宣布Java将提交给。"Java“是Oracle拥有的商标,因此将"Java”重命名为"Jakarta“。
Jakarta 8的第一个版本包含Servlet 4.x,它与Java 8兼容。Java 8和Jakarta 8使用javax.*
命名空间。
不管你用的是哪一个,两者都会互相配合。
要将Servlet4.0升级到Servlet5.0,还需要哪些东西呢?
要升级到Servlet5.0,您必须使用Jakarta 9。在Jakarta 9中,名称空间从javax.*
更改为jakarta.*
,因此必须将所有javax.*
包导入到jakarta.*
包。
此外,如果您正在使用任何其他库,则必须使用兼容版本。
Jakarta的maven依赖项如下。
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-web-api</artifactId>
<version>9.1.0</version>
<scope>provided</scope>
</dependency>
参考文献:雅加达EE9Web的GitHub模板
https://stackoverflow.com/questions/68707177
复制相似问题