English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Spring MVC Учебник

Spring MVC - это Java-фреймворк для создания веб-приложений. Он следует шаблону проектирования Model-View-Controller. Он реализует все основные функции ядра фреймворка Spring, такие как обратный вызов управления, инъекция зависимостей.

Spring MVC через DispatcherServlet Предоставляет элегантное решение для использования MVC в фреймворке Spring. >>. Здесь, DispatcherServlet Это класс, который используется для приема传入них запросов и их mappings к правильным ресурсам, таким как контроллер, модель и вид.

Spring Web Model-View-Controller

Модель- Модель содержит данные приложения. Данные могут быть единичным объектом или коллекцией объектов. Контроллер- Контроллер содержит бизнес-логику приложения. Здесь annotацией @Controller используется для маркировки класса в качестве контроллера. Вид- Вид呈现提供的信息的特定 формат. Обычно, JSP + JSTL используются для создания страниц вида. Хотя Spring также поддерживает другие технологии вида, такие как Apache Velocity, Thymeleaf и FreeMarker. Фронт-контроллер- В Spring Web MVC класс DispatcherServlet используется в качестве переднего контроллера. Он отвечает за управление процессом приложения Spring MVC.


Понимание процесса Spring Web MVC

Как показано на рисунке, все входящие запросы拦截ируются DispatcherServlet переднего контроллера. DispatcherServlet получает записи маппинга обработчиков из XML-файла и перенаправляет запросы к контроллеру. Контроллер возвращает объект ModelAndView. DispatcherServlet проверяет запись анализатора视图 в XML-файле и вызывает指定的 компонент视图.


Преимущества фреймворка Spring MVC

Давайте рассмотрим некоторые преимущества фреймворка Spring MVC: -

Разделение ролей- Spring MVC выделяет каждую роль, где могут быть реализованы модели объектов, контроллеры, объекты команд, анализаторы视图, DispatcherServlet, валидаторы и т.д. Легковесный- Он использует легкий servlet контейнер для разработки и развертывания вашего приложения. Сильная конфигурация- Он предоставляет надежную конфигурацию для фреймворка и классов приложений, включая легкую ссылку на контекст, например, из веб-контроллера к бизнес-объектам и валидаторам. Быстрое развитие- Spring MVC способствует быстрому и параллельному развитию. Повторно используемый бизнес-код- Без создания новых объектов, он позволяет нам использовать существующие бизнес-объекты. Легкость тестирования- В Spring, как правило, мы создаем классы JavaBeans, чтобы вы могли использовать методы setter для инъекции тестовых данных. Гибкое.mapping- Он предоставляет особые аннотации для легкого перенаправления страниц.


Пример фреймворка Spring Web MVC

Давайте посмотрим на простой пример фреймворка Spring Web MVC. Шаги следующие:

Загрузка jar-файлов Spring в Maven или добавление зависимостей Создание класса контроллера Предоставление записи контроллера в файле web.xml Определение bean в отдельном XML-файле Отображение сообщения на странице JSP Запустите сервер и разверните проект


Структура каталогов Spring MVC

Структура каталогов Spring MVC с использованием Maven


Необходимые jar-файлы или зависимости Maven

Чтобы запустить этот пример, вам нужно загрузить:

jar-файл Spring Core jar-файл Spring Web jar-файлы JSP + JSTL (если используется другая технология视图, загрузите соответствующий jar-файл).

Загрузите все jar-файлы Spring, включая JSP и JSTL.

Если вы используете Maven, вам не нужно добавлять jar файлы. Теперь вам нужно добавить зависимости Maven в файл pom.xml.

1、В файле pom.xml предоставляются информация о проекте и конфигурация.

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.w3codebox</groupId>
  <artifactId>SpringMVC</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>SpringMVC Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.1.1.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>  
    <groupId>javax.servlet</groupId>  
    <artifactId>servlet-api</artifactId>  
    <version>3.0-alpha-1</version>  
</dependency>
  </dependencies>
  <build>
    <finalName>SpringMVC</finalName>
  </build>
</project>

2. Создаем класс контроллера

Для создания класса контроллера мы используем две annotirovki @Controller и @RequestMapping.

@Controller annotirovka markiruet klass kak Controller.

@RequestMapping annotirovka ispolzuetsya dlya rasporeda klassov s opredelennym imenem URL.

HelloController.java

package com.w3codebox;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
@RequestMapping("/")
  public String display()
  {
    return "index";
  } 
}

3. В файле web.xml предоставляем запись контроллера

В этом xml файле мы указываем Servlet класс DispatcherServlet в качестве переднего контроллера Spring Web MVC. Все传入ые запросы html файлов будут перенаправлены на DispatcherServlet.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SpringMVC</display-name>
   <servlet>  
    <servlet-name>spring</servlet-name>  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <load-on-startup>1</load-on-startup>    
</servlet>  
<servlet-mapping>  
    <servlet-name>spring</servlet-name>  
    <url-pattern>/</url-pattern>  
</servlet-mapping>  
</web-app>

4. Определите bean в xml файле.

Это важный конфигурационный файл, в котором необходимо определить компонент View.

Элемент context: component-scan определяет базовый пакет для DispatcherServlet. Будут搜索 контроллерные классы.

Этот xml файл должен находится в директории WEB-INF.

spring-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xsi:schemaLocation="
    http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context.xsd
      http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  <!-- Provide support for component scanning -->
  <context:component-scan base-package="com.w3codebox" />
  <!-- Provide support for conversion, formatting and validation -->
  <mvc:annotation-driven/>
</beans>

5. Показ сообщения на странице JSP

Это простая страница JSP, которая показывает сообщение, возвращенное контроллером.

index.jsp

<html>
<body>
<p>Welcome to Spring MVC Tutorial</p>
</body>
</html>

Вывод:



Индекс MVC Spring