从 Java Servlet 4 转换到 Jakarta Servlet 5 时更新“web.xml”

Bas*_*que 7 java web.xml servlets jakarta-ee

我正在将一个简单的 Servlet 从使用 Java Servlet 4 转换为Jakarta Servlet 5

我注意到我的web.xml文件引用了 4 规范。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns = "http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version = "4.0">
</web-app>
Run Code Online (Sandbox Code Playgroud)
  • 那个片段到底有什么作用?
  • 我应该如何更改这些值以适合 Jakarta Servlet 5?

我希望这些javaee4价值观应该改变。

ric*_*ckz 10

来自 Tomcat 的示例

这是我在web.xml文件中使用的内容。

<?xml version="1.0" encoding="UTF-8"?>
<web-app
        xmlns = "https://jakarta.ee/xml/ns/jakartaee"
        xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation = "https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
        version = "5.0"
        metadata-complete = "false"
>
    <display-name> Welcome to Tomcat</display-name>
    <description> Welcome to Tomcat</description>
</web-app>
Run Code Online (Sandbox Code Playgroud)

此示例基于与 Tomcat 10.0.x 捆绑的 Web 应用程序中找到的web.xml文件。请阅读Jakarta Servlet 5 规范的第 8.1ROOT“注释和可插入性”来决定是否要设置为或。metadata-completetruefalse

Servlet 规范中的示例

另请参阅第 14.4.1 节中的部署描述符 (web.xml) 示例Jakarta Servlet 规范的基本示例,版本 5.0,版权所有 (c) 2019、2020 Eclipse Foundation。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
         web-app_5_0.xsd"
         version="5.0">

  <display-name>A Simple Application</display-name>

  <context-param>
    <param-name>Webmaster</param-name>
    <param-value>webmaster@example.com</param-value>
  </context-param>

  <servlet>
    <servlet-name>catalog</servlet-name>
    <servlet-class>com.example.CatalogServlet</servlet-class>
    <init-param>
      <param-name>catalog</param-name>
      <param-value>Spring</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>catalog</servlet-name>
    <url-pattern>/catalog/*</url-pattern>
  </servlet-mapping>

  <session-config>
    <session-timeout>30</session-timeout>
  </session-config>

  <mime-mapping>
    <extension>pdf</extension>
    <mime-type>application/pdf</mime-type>
  </mime-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

  <error-page>
    <error-code>404</error-code>
    <location>/404.html</location>
  </error-page>

</web-app>
Run Code Online (Sandbox Code Playgroud)

  • @rickz,除非我提供了 XSD 文件的完整 URL,否则您的示例对我无效: `xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns /jakartaee/web-app_5_0.xsd"` (2认同)