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