DispatcherServlet
обробляє запити таким чином:
-
WebApplicationContext
шукається та зв'язується у запиті як атрибут, який може бути використаний контролером та іншими елементами процесу. За замовчуванням він пов'язаний із ключемDispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE
. -
Розпізнавач регіональних налаштувань прив'язується до запиту, щоб дозволити елементам процесу визначити регіональні налаштування, які потрібно використовувати під час обробки запиту (візуалізація подання, підготовка даних тощо). Якщо не потрібно розпізнавати регіональні налаштування, то не потрібен і розпізнавач регіональних налаштувань.
-
Розпізнавач теми прив'язується до запиту, щоб елементи, такі як подання, могли визначати, яку тему використовувати. Якщо тема не використовуються, можна ігнорувати його.
-
Якщо зазначено розпізнавач багатокомпонентних файлів, то буде перевірено запит на наявність багатокомпонентних елементів. Якщо знайдено багатокомпонентні елементи, то запит огортається в
MultipartHttpServletRequest
для подальшої обробки іншими елементами процесу. -
Відбувається пошук відповідного обробника. Якщо обробник знайдено, ланцюжок виконання, пов'язаний з обробником (препроцесори, постпроцесори та контролери), запускається для підготовки моделі до візуалізації. До того ж, для анотованих контролерів може бути візуалізована (всередині
HandlerAdapter
) відповідь замість повернення подання. -
Якщо повертається модель, відбувається візуалізація подання. Якщо модель не повертається (можливо через те, що препроцесор або постпроцесор перехопив запит, ймовірно, з міркувань безпеки), подання не створюється, оскільки запит вже міг бути виконаний.
Біни HandlerExceptionResolver
, оголошені в WebApplicationContext
, використовуються для розпізнавання винятків, що виникають під час обробки запиту. Ці розпізнавачі винятків дозволяють налаштовувати логіку обробки винятків.
Для забезпечення HTTP-кешування обробники можуть використовувати методи CheckNotModified
з WebRequest
, а також додаткові опції для анотованих контролерів.
Можна налаштувати окремі екземпляри DispatcherServlet
, додавши параметри ініціалізації сервлетів (елементи init-param
) до оголошення сервлета у файлі web.xml
. У наступній таблиці перелічені параметри, що підтримуються:
Параметр | Пояснення |
---|---|
|
Клас, що реалізує |
|
Рядок, який передається екземпляру контексту (заначеному |
|
Простір імен |
|
Відповідає за те, чи слід генерувати За замовчуванням цей параметр встановлений у Зверни увагу: якщо також налаштована обробка сервлетів за замовчуванням, нерозв'язані запити завжди перенаправляються до сервлета за замовчуванням, а повідомлення 404 не генерується. |
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ