2012-02-25 3 views
0

У меня есть следующий шаблон URL (* против * .any_pattern.):сервлет в web.xml

<servlet-mapping> 
     <servlet-name>name_of_a_servlet</servlet-name> 
     <url-pattern>*.some_pattern</url-pattern> 
    </servlet-mapping> 

Если у меня есть более чем один шаблон в шаблон URL, например: *.htm, *.css, *.do и т.д. , могу ли я использовать *.* в шаблоне url? или я должен использовать это;

<url-pattern>*.htm</url-pattern> 
<url-pattern>*.css</url-pattern> 
<url-pattern>*.do</url-pattern> 

ответ

2

*.* недействительный шаблон URL. * может быть только при запуске или конец рисунка. Если вы намерены покрыть каждый HTTP-запрос, вам необходимо использовать /*.

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

я однако вопрос, если что сервлет не может лучше быть filter.

0

Синтаксис отображения URL определяется в Servlet API спецификации (я ссылки 2.4) для этой информации:

Строка начинается с символа «/» и заканчивая суффикс «/ *» используется для отображения пути. Строка, начинающаяся с символа '*.' префикс используется как расширение. Строка, содержащая только символ «/», указывает «сервлет» по умолчанию приложения. В этом случае путь сервлета является URI запроса минус путь контекста, а информация о пути имеет значение null.
Все остальные строки используются только для точных совпадений .

Таким образом, короткий ответ заключается в том, что шаблон url предназначен для одного шаблона URL-адреса. Вам придется сделать несколько шаблонов, чтобы они соответствовали только трем шаблонам.

+0

ой и шаблон спецификации определен в разделе 11.2 в сервлет 2,4 спецификации – gorjusborg

+1

Это не является параметрами порядка вопрос. Вы можете иметь несколько записей '' в одном '<сервлет-сопоставление>'. Конкретный вопрос ОП - как иметь только один. Попытка OP использовать '*. *' Явно не удалась, поэтому он спросил ее здесь. – BalusC

+0

Извините неправильно прочитал вопрос. – gorjusborg

-1

<url-pattern>*.some_pattern</url-pattern>
Должно быть
<url-pattern>/*.some_pattern</url-pattern> // слэш перед тем пути

или
-pattern>/path-pattern</url-pattern>

+1

Добро пожаловать в переполнение стека :-) пожалуйста, посмотрите на [ответ] – JimHawkins

Смежные вопросы