В этом уроке мы покажем вам веб-приложение Spring MVC hello world.
Используемые технологии:
Весна 2.5.6
JDK 1.6
Затмение 3.6
Мавен 3
1. Базовый MVC
В веб-приложении Spring MVC оно состоит из 3 стандартных компонентов MVC (Модель, представления, контроллер):
Модели – объекты домена, которые обрабатываются уровнем обслуживания (бизнес-логика) или постоянным уровнем (работа с базой данных).
Представления – Отображение данных , обычно это страница JSP, написанная с помощью стандартной библиотеки тегов Java (JSTL).
Контроллеры – сопоставление URL-адресов и взаимодействие с уровнем обслуживания для бизнес-обработки и возврата модели.
На следующих рисунках показано, как веб-приложение Spring MVC обрабатывает веб-запрос.
Рисунок 1.1 – Изображение скопировано с Ссылка на Spring MVC с незначительными изменениями.
Рисунок 1.2 – Изображение скопировано из этой книги: Весенние Рецепты
2. Структура каталогов
Стандартная структура каталогов проекта Maven.
3. Знаток
Объявляет зависимость spring-webmvc , Maven поможет вам автоматически управлять переходными зависимостями (загружайте другие зависимости, которые требуются для spring-webmvc , например spring-контекст или spring-beans ).
Если вы используете страницу JSP с технологией JSTL, также включите зависимость jstl .
Spring поставляется со многими контроллерами, обычно вам просто нужно расширить AbstractController и переопределить метод handleRequestInternal() .
package com.mkyong.common.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class HelloWorldController extends AbstractController{
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("HelloWorldPage");
model.addObject("msg", "hello world");
return model;
}
}
4.1 ModelAndView(“Страница helloworldpage”) – Чтобы определить, какое представление следует вернуть пользователю, в этом примере Страница HelloWorldPage.jsp будет возвращен.
4.2 модель.AddObject (“msg”, “привет, мир”) – Добавьте строку “привет, мир” в модель с именем “msg”, позже вы можете использовать EL ${msg} для отображения строки “привет, мир”.
5. Просмотр (страница JSP)
В этом случае “просмотр” – это страница JSP, вы можете отобразить значение “привет, мир”, которое хранится в модели “msg” с помощью языка выражений (EL) ${msg}.
6.1 Объявлены контроллер пружины и решатель просмотра.
/WEB-INF/pages/.jsp
1. Контроллер – Объявлено имя компонента /welcome.htm и сопоставьте его с HelloWorldController . Это означает, что если URL-адрес с /welcome.htm запрашивается шаблон, контроллер HelloWorldController обработает запрос.
2. Решатель просмотра – Определите, как Spring будет выглядеть для шаблона представления. В этом случае контроллер HelloWorldController вернет представление с именем HelloWorldPage , решатель просмотра найдет файл со следующим механизмом: префикс + имя представления + суффикс , который является /WEB-INF/страницы/helloworldpage.jsp .
6.2 В web.xml , объявил DispatcherServlet сервлет, который будет выступать в качестве фронт-контроллера для обработки всего веб-запроса, который заканчивается расширением htm .
Spring Web MVC Applicationmvc-dispatcher
org.springframework.web.servlet.DispatcherServlet
1mvc-dispatcher*.htm
В этом примере Spring будет искать этот файл – mvc-dispatcher-servlet.xml .
7. Демонстрация
7.1 Для запуска этого проекта с помощью Maven:
$ mvn jetty:run
7.2 Чтобы запустить этот проект в среде IDE Eclipse, создайте параметры проекта Eclipse с помощью следующей команды Maven:
$ mvn eclipse:eclipse
Импортируйте проект вручную и начните с плагина сервера.
URL-адрес заканчивается расширением “.htm”, поэтому он будет перенаправляться на “DispatcherServlet” и отправлять запросы на сопоставление BeanNameUrlHandlerMapping по умолчанию.
Сопоставление BeanNameUrlHandlerMapping возвращает helloworldcontroller в DispatcherServlet.
DispatcherServlet перенаправляет запрос на контроллер HelloWorldController.
HelloWorldController обработает его и вернет объект ModelAndView с именем представления “Страница Hello World”.
DispatcherServlet получил ModelAndView и вызвал ViewResolver для его обработки.
ViewResolver возвращает /WEB-INF/страницы/Страницу Hello World.jsp обратно в DispatcherServlet.