2012-03-19 1 views
5

Можно создать дубликат:
Servlet mapping/vs /*differenct между/и/* в сервлет шаблон матча URL

Какова разница '/' и '/ *' в отображении сервлет URL?

Поскольку я читаю книгу весной в действии, и я нашел эти слова:

Далее мы должны указать, что URL-адрес будет обрабатываться DispatcherServlet. Общепризнано, что DispatcherServlet сопоставлен с URL-адресами , такими как .htm,/, или/app. Но эти шаблоны URL есть несколько проблем:

  • * .htm модель предполагает, что ответ всегда будет находиться в HTML-форме (которая, как мы узнаем в главе 11, не обязательно случай).
  • Сопоставление его с/* не подразумевает какой-либо тип ответа, но указывает, что DispatcherServlet будет обслуживать все запросы. Это делает более статичным статическим содержимым, таким как изображения и таблицы стилей.
  • Шаблон/app (или что-то подобное) помогает нам различать содержимое Диспетчер-Сервлет-контент из других типов контента. Но тогда у нас есть детали реализации (в частности, путь/app), которые отображаются в наших URL-адресах. Это приводит к сложной тактике перезаписи URL-адресов, чтобы скрыть путь/app.

Вместо того, чтобы использовать любой из этих ущербных схем сервлет-картографирования, я предпочитаю отображение DispatcherServlet как это:

<servlet-mapping> 
    <servlet-name>spitter</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

По отображению DispatcherServlet к /, я говорю, что это по умолчанию сервлета и что он будет отвечать за обработку всех запросов, , включая запросы на статический контент.

Согласно вышеприведенным словам, кажется, что оба «/» и «/ *» будут обслуживать весь запрос.

В чем разница?

ответ

3

Строка, содержащая только символ /, указывает сервлет приложения по умолчанию. В этом случае путь сервлета является URI запроса минус путь контекста, а информация о пути имеет значение null. &

Строка, начинающаяся с *. префикс используется как расширение.

Узор/* заставит все через ваш сервлет.

Образец/сделает ваш сервлет сервлета по умолчанию для приложения, означает, что он подберет каждый шаблон, у которого нет другого точного соответствия .

+0

Какая разница между сервлетом по умолчанию ('/') и всем '/ *'? – hguser

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

  • Нет связанных вопросов^_^