Что же такое 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, и всё остальное работает корректно.