当我在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>
没有错误。是否有预定义的订单?
答案 0 :(得分:1)
对于web.xml,是的。 servlet XSD(如果您使用的是旧版本,则为DTD)要求按特定顺序列出元素。
答案 1 :(得分:1)
我假设您正在谈论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另一种选择就是使用一些工具......
答案 2 :(得分:1)
对于schema和dtd,有一个指定的顺序。如果您在IDE中引用它们,它们将在出现故障时显示错误。但是,大多数J2EE容器在解析时都不会针对模式或dtd验证web.xml,因此在使用.war / .ear时不会导致错误。
您应该尝试按照指定的顺序保留它们,因为如果它们被分组,更容易找到并进行更改。
如果您阅读了dtd / schema,它将显示订单。您可以从此处其他答案中列出的网址下载。