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