Имеет ли значение порядок элементов в web.xml?

1

Когда я пробовал следующий код в проекте сервлета,

  <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>

ошибки нет. Есть предопределенный порядок?

Теги:
servlets
web.xml

3 ответа

1

Для схемы и dtd указан определенный порядок. Если вы ссылаетесь на них в своей среде IDE, он будет показывать ошибки, если они не соответствуют порядку. Однако большинство контейнеров J2EE не проверяют ваш web.xml на схему или dtd при ее синтаксическом анализе, чтобы не вызывать ошибок при использовании вашего.war/.ear.

Вы должны попытаться сохранить их в указанном порядке, так как легче найти вещи и внести изменения, если они сгруппированы.

Если вы прочитаете dtd/schema, он покажет заказ. Вы можете просто загрузить его из URL-адресов, перечисленных в других ответах здесь.

1

Для web.xml, да. Сервлет XSD (или DTD, если вы используете более старую версию) требует, чтобы элементы были перечислены в определенном порядке.

  • 0
    спасибо. Вы можете упомянуть этот конкретный заказ?
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-документами, вам должно быть легко проверить...

Если нет, вы можете прочитать некоторые уроки, другой вариант - использовать какой-то инструмент...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню