【问题标题】:Does element order matter in web.xml?web.xml 中的元素顺序是否重要?
【发布时间】:2015-04-05 11:21:49
【问题描述】:

当我在 servlet 项目中尝试以下代码时,

  <servlet>
   <init-param>
     <param-name>a</param-name>
     <param-value>x</param-value>
    </init-param>
    <servlet-name>Result</servlet-name>
    <servlet-class>Result</servlet-class>
  </servlet>

它显示一个错误,但是当我尝试这个时,

 <servlet>
    <servlet-name>Result</servlet-name>
    <servlet-class>Result</servlet-class>
    <init-param>
     <param-name>a</param-name>
     <param-value>x</param-value>
    </init-param>
    </servlet>

没有错误。有预定义的顺序吗?

【问题讨论】:

    标签: java xml servlets web.xml


    【解决方案1】:

    对于 web.xml,是的。 servlet XSD(或 DTD,如果您使用的是旧版本)要求元素按特定顺序列出。

    【讨论】:

      【解决方案2】:

      我假设,您在谈论 web.xml,这是您指定架构的方式:

      DTD

      <!DOCTYPE web-app
          PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
          "http://java.sun.com/dtd/web-app_2_3.dtd">
      

      XML 架构

      <web-app xmlns="http://java.sun.com/xml/ns/j2ee"      
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
          http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
      

      因此,如果您熟悉 XML,那么您应该很容易验证...

      如果没有,你可以阅读一些tutorial 另一个选择是使用一些工具...

      【解决方案3】:

      对于 schema 和 dtd 有一个指定的顺序。如果您在 IDE 中引用它们,当它们出现故障时会显示错误。然而,大多数 J2EE 容器在解析时不会根据模式或 dtd 验证您的 web.xml,因此在使用 .war/.ear 时不会导致错误。

      您应该尝试按照指定的顺序保持它们,因为如果它们被分组,则更容易找到并进行更改。

      如果您阅读 dtd/schema,它将显示顺序。您可以从此处其他答案中列出的 URL 下载它。

      【讨论】:

        猜你喜欢
        • 2011-10-10
        • 2012-12-13
        • 2021-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多