Что же такое Spring MVC?
Это набор средств для построения веб-приложений. Подобных тем приложениям, которые мы уже разрабатывали, но в отличии от разработки с помощью сервлетов разрабатывать веб-приложения с помощью Spring MVC намного удобнее и эти все удобства будут рассмотрены далее.
Для понимания того, как работает Spring MVC необходимо вспомнить, что такое паттерн Front Controller
.
Помним, что в соответствии с этим паттерном все запросы от клиентов обрабатываются централизованно. То есть все запросы должны в первую очередь приходить на один и тот же обработчик запросов, и далее этот обработчик перенаправляет клиента в другой обработчик, а в какой именно решается исходя из запроса клиента.
В Spring MVC этим центральным обработчиком запросов является специальный сервлет, он называется DispatcherServelet
. Этот сервлет есть в спринг библиотеке, которую мы уже добавили в наш проект в прошлом уроке, нам нужно будет лишь настроить его в web.xml.
Если подробнее то Spring MVC работает так:
- Все запросы сначала идут на DispatcherServlet (Front Controller).
- Model – это то, в чем хранятся данные при передаче в DispatcherServet и из него.
- DispatcherServlet исходя из запроса клиента решает в какой другой контроллер перенаправить данные клиента.
- В контроллере, в который данные клиента были перенаправлены, эти данные обрабатываются, и новые сформированные данные в этом контроллере сохраняются в Model и передаются в DispatcherServlet.
- DispatcherServlet перенаправляет клиента, который послал запрос, на View, название которого также было передано ему из контроллера.
Как видим, все запросы и ответы идут через Front Controller
.
Также, исходя из описания работы выше, и, собственно, из названия "Spring MVC"
, очевидно, что Spring MVC тоже реализует архитектру MVC, которую мы уже рассматривали ранее.
Давайте же сконфигурируем этот DispatcherServlet
в web.xml. Конфигурируется он как самый обычный сервлет. Мы это уже делали раньше.
web.xml:
Давайте теперь добавим в проект некоторые файлы и папки.
В папке classes
создадим класс MVCController
(имя может быть любым). В этом классе как раз и будут находиться обработчики куда DispatcherServlet перенаправляет запросы.
В папку WEB-INF
добавим папку jsp
, в которой будут храниться страницы на которые будет перенаправлять клиента DispatcherServlet.
И также добавим, конечно же, applicationContext.xml, в котором определяются бины.

Теперь необходимо сконфигурировать applicationContext.xml. DispatcherServlet
будет считывать этот файл и создавать бины.
Теперь давайте создадим класс с обработчиками запросов, которым DispatcherServlet передаёт запросы и которые в ответ возвращают в DispatcherServlet имя страницы, на которую нужно перевести клиента или данные, которые запросил клиент.
Помним, что мы добавили в папку jsp два файла страницы. Давайте же перейдем по путям созданных обработчиков и проверим открываются ли эти страницы.
Для начала, запускаем сервер и перейдем в браузере по пути /FirstJSP
первого обработчика.

Теперь перейдем в браузере по пути /SecondJSP
второго обработчика.

Как видим, обе jsp страницы открылись успешно. Значит и обработчики, и DisparcherServlet, и всё остальное работает корректно.