English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Spring MVC è un framework Java utilizzato per costruire applicazioni web. Segue il modello di progettazione Model-View-Controller. Implementa tutte le funzionalità di base del framework Spring, come l'inversione di controllo e l'iniezione di dipendenze.
Spring MVC attraverso DispatcherServlet Fornisce una soluzione elegante per utilizzare MVC nel framework Spring. >. Ecco qui, DispatcherServlet È una classe utilizzata per ricevere le richieste in arrivo e mapparle ai risorse corrispondenti, come il controller, il modello e la vista.
Model- Il modello contiene i dati dell'applicazione. I dati possono essere un singolo oggetto o una raccolta di oggetti. Controller- Il controller contiene la logica aziendale dell'applicazione. Qui, l'annotazione @Controller viene utilizzata per marcare la classe come controller. View- La vista rappresenta le informazioni fornite in un formato specifico. Di solito, JSP + JSTL vengono utilizzati per creare le pagine di vista. Anche Spring supporta altre tecnologie di vista, come Apache Velocity, Thymeleaf e FreeMarker. Front Controller- In Spring Web MVC, la classe DispatcherServlet viene utilizzata come controller frontend. Si occupa della gestione del flusso dell'applicazione Spring MVC.
Come mostrato nell'immagine, tutte le richieste in entrata vengono intercettate dal DispatcherServlet del controller frontend. DispatcherServlet ottiene le voci delle mappature dei gestori dal file XML e reindirizza le richieste al controller. Il controller restituisce l'oggetto ModelAndView. DispatcherServlet verifica le voci del risolvere la vista nel file XML e chiama il componente della vista specificato.
Ecco alcuni vantaggi del framework Spring MVC: -
Separazione dei ruoli- Spring MVC separa ogni ruolo, tra cui possono essere implementati oggetti specializzati per oggetti modello, controller, oggetti di comando, risolvere la vista, DispatcherServlet, validatori, ecc. Leggero- Utilizza un container servlet leggero per sviluppare e distribuire la tua applicazione. Configurazione potente- Fornisce una configurazione affidabile per il framework e le classi dell'applicazione, inclusi riferimenti facili tra contesti, come da controller web a oggetti di business e validatori. Sviluppo rapido- Spring MVC promuove uno sviluppo rapido e parallelo. Codice aziendale riutilizzabile- Senza creare nuovi oggetti, ci permette di utilizzare oggetti di business esistenti. Facile da testare- In Spring, di solito creiamo classi JavaBeans, che ti permettono di iniettare dati di test utilizzando i metodi setter. Mappatura flessibile- Fornisce annotazioni specifiche per la ridirezione delle pagine facili.
Ecco un esempio semplice del framework Spring Web MVC. I passaggi sono i seguenti:
Carica i file jar di Spring in Maven o aggiungi le dipendenze Crea la classe del controller Fornisci l'entry del controller nel file web.xml Definisci il bean in un file XML separato Mostra il messaggio nella pagina JSP Avvia il server e depura il progetto
Per eseguire questo esempio, è necessario caricare:
File jar di Spring Core File jar di Spring Web File jar di JSP + JSTL (se si utilizza altra tecnologia di visualizzazione, caricare il relativo file jar).
Scarica tutti i file jar di Spring, inclusi JSP e JSTL.
Se stai utilizzando Maven, non è necessario aggiungere file jar. Ora, devi aggiungere le dipendenze Maven al file 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>
Per creare la classe controller, utilizziamo due annotazioni @Controller e @RequestMapping.
@Controller annotazione utilizzata per marcare la classe come Controller.
@RequestMapping annotazione viene utilizzata per mappare la classe con il nome URL specificato.
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"; } }
In questo file XML, specificiamo la classe Servlet DispatcherServlet come il controller front-end di Spring Web MVC. Tutte le richieste in entrata agli html file vengono inoltrate al 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>
Questo è un file di configurazione importante in cui è necessario specificare i componenti di visualizzazione.
L'elemento context:component-scan definisce il pacchetto di base del DispatcherServlet. Cercherà le classi del controller.
Questo file XML dovrebbe essere situato nella directory 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"> <!--Fornire supporto per la scansione dei componenti--> <!--Fornire supporto per la conversione, formattazione e validazione-->', <mvc:annotation-driven/> </beans>
Questa è una semplice pagina JSP che mostra il messaggio restituito dal Controller.
index.jsp
<html> <body> <p>Benvenuti nel tutorial Spring MVC</p> </body> </html>
output:
MVCSpring
formMVC
applicazioneMVC
validazioneMVC
tilesMVC