我正在将servlet 4.0.1升级到servlet 5.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>
当我升级到servlet 5.0时,我看到有一个新术语“Jakarta”,servlet 5附带Jakarta API,具有以下Maven依赖性。
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
</dependency>
所以,有以下问题我试图在互联网上搜索,但没有找到
1.请解释一下雅加达这个新名词是怎么来的?
1.这是使用Jakarta API升级servlet 5. 0的唯一方法吗?我们可以使用旧的“javax. servlet-api”吗?
1.我明白了,Jakarta在4.0版本中也有,但我们没有使用它。它与servlet 4没有任何依赖关系吗?https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api
1.将servlet 4.0升级到servlet 5.0还需要做哪些其他事情?
如有参考文件,请提供参考文件
2条答案
按热度按时间kmbjn2e31#
Servlet规范
你说:
我正在将servlet 4.0.1升级到servlet 5.0。
不,这实际上不是一个升级。
Servlet规范在4.0和5.0之间没有重大变化,只是包命名从
javax.*
改为jakarta.*
。名称空间的这一变化是Oracle Corp转变的一个阶段,它将Java EE技术的责任转移到Eclipse Foundation,成为Jakarta EE。
从Servlet 4迁移到Servlet 5时,您 * 不会 * 受益于任何新功能或改进。
相比之下,Jakarta Servlet 6确实带来了显著的变化和改进。
码头
您评论道:
升级到servlet 5.0的主要原因是Jetty11,因为这是Jetty11的先决条件。
Jetty 10与Jetty 11相同,但包名称从
javax.*
更改为jakarta.*
。两个版本并行开发。Jetty 11没有比Jetty 10更好的功能或改进。(By Apache Tomcat 9.x和Tomcat 10.0的方式同上,并行版本的包命名发生了变化。)
👉 如果你现在想保守一点,那就坚持使用Jetty 10和
javax.*
包命名。如果你想为将来做准备,那就使用Jetty 11和jakarta.*
包命名。有一些关于Oracle公司将Java EE的控制权移交给Eclipse基金会,以及随之而来的名称更改为Jakarta EE的many articles, presentations, and interviews。您确实应该对Oracle到Jakarta这一主题进行一些基本的行业研究,以了解这些更改。Start with Wikipedia。
x0fgdtte2#
1.请解释一下雅加达这个新名词是怎么来的?
2017年9月,甲骨文宣布Java EE将提交给Eclipse基金会。“Java”是甲骨文拥有的商标,因此“Java EE”被重命名为“Jakarta EE”。
1.这是使用Jakarta API升级servlet 5. 0的唯一方法吗?我们可以使用旧的“javax. servlet-api”吗?
1.我明白了,Jakarta在4.0版本中也有,但我们没有使用它。它与servlet 4没有任何依赖关系吗?https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api
Jakarta EE 8的第一版包含Servlet 4.x,并且与Java EE 8兼容。Java EE 8和Jakarta EE 8使用
javax.*
名称空间。无论您使用的是哪一种,两者都可以相互配合。
将servlet 4.0升级到servlet 5.0还需要做哪些其他事情?
要升级到Servlet 5.0,必须使用Jakarta EE 9。在Jakarta EE 9中,名称空间从
javax.*
更改为jakarta.*
,因此必须将所有javax.*
包导入更改为jakarta.*
包。此外,如果您正在使用任何其他库,则必须使用兼容的版本。
Jakarta EE Web API的maven依赖项如下。
参考:GitHub Template for Jakarta EE 9 Web