将 servlet 4.0.1 升级到 servlet 5.0

Ash*_*nka 5 java eclipse servlet-4 jakarta-ee

我正在将 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> 
Run Code Online (Sandbox Code Playgroud)

当我升级到 servlet 5.0 时,我看到有一个新术语“Jakarta”,并且 servlet5 附带具有以下 maven 依赖项的 Jakarta API。

<dependency>
  <groupId>jakarta.servlet</groupId>
  <artifactId>jakarta.servlet-api</artifactId>
  <version>5.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

因此,我尝试在互联网上搜索但找不到以下问题

  1. 请解释一下这个新术语“雅加达”,比如它是如何出现的?
  2. 这是使用 Jakarta API 升级 servlet 5.0 的唯一方法吗?我们可以使用旧的“javax.servlet-api”吗?
  3. 我明白了,4.0 版本中也有 Jakarta,但我们没有使用它。它与 servlet 4 没有任何依赖性吗? https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api
  4. 将 servlet 4.0 升级到 servlet 5.0 还需要什么?

还请建议任何文档以供参考(如果有)

Bas*_*que 10

Servlet 规范

\n

你说:

\n
\n

我正在将 servlet 4.0.1 升级到 servlet 5.0。

\n
\n

不,这实际上不是 \xc2\xab\xc2\xa0upgrade\xc2\xa0\xc2\xbb。

\n

javax.*除了从包命名改为包命名之外,Servlet 规范在 4.0 和 5.0 之间没有重大变化jakarta.*

\n

命名空间的这一变化是Oracle 公司将 Java EE 技术的责任转移到Eclipse 基金会(成为Jakarta EE)的过渡阶段的一个阶段。

\n

从 Servlet 4迁移到Servlet 5您不会任何新功能或改进中受益。

\n

相比之下,Jakarta Servlet 6确实带来了重大的变化和改进。

\n

码头

\n

您评论道:

\n
\n

升级到servlet 5.0的主要原因是Jetty11。因为这是 Jetty11 的先决条件。

\n
\n

Jetty 10 与 Jetty 11 相同,但包名称从 更改javax.*jakarta.*。这两个版本是并行开发的。Jetty 11 中没有比 Jetty 10 更好的功能或改进。

\n

(顺便说一下,Apache Tomcat 9.x 和 Tomcat 10.0 也是如此,包命名更改的并行版本。)

\n

如果您现在想保守一点,请坚持使用 Jetty 10 和javax.*包命名。如果您想为未来做好准备,请使用 Jetty 11 和jakarta.*包命名。

\n
\n

许多文章、演示文稿和采访介绍了 Oracle 公司将 Java EE 控制权移交给 Eclipse 基金会的过渡,以及随之而来的更名为 Jakarta EE 的情况。您确实应该对 Oracle 到 Jakarta 主题进行一些基础行业研究,以了解这些变化。从维基百科开始

\n