eclipse 将servlet 4.0.1升级到servlet 5.0

ekqde3dh  于 2022-11-23  发布在  Eclipse
关注(0)|答案(2)|浏览(358)

我正在将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还需要做哪些其他事情?
如有参考文件,请提供参考文件

kmbjn2e3

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

x0fgdtte

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依赖项如下。

<dependency>
    <groupId>jakarta.platform</groupId>
    <artifactId>jakarta.jakartaee-web-api</artifactId>
    <version>9.1.0</version>
    <scope>provided</scope>
</dependency>

参考:GitHub Template for Jakarta EE 9 Web

相关问题