Tag 8: Frühlings-MVC

1.mvc

Konzept:

MVC ist eine Abkürzung für Model (Model), View (View) und Controller (Controller) und ist eine Software-Design-Spezifikation. Es ist eine Methode zum Trennen von Geschäftslogik, Daten und Anzeige, um Code zu organisieren. Die Hauptfunktion von MVC besteht darin, die wechselseitige Kopplung zwischen Ansicht und Geschäftslogik zu reduzieren. MVC ist kein Entwurfsmuster, MVC ist ein Architekturmuster. Natürlich gibt es Unterschiede bei verschiedenen MVCs.

Modell:

Das Datenmodell stellt die anzuzeigenden Daten bereit, enthält also Daten und Verhalten, die als Domänenmodell oder JavaBean-Komponente betrachtet werden können

Sicht:

Verantwortlich für die Anzeige des Modells, das ist im Allgemeinen die Benutzeroberfläche, die wir sehen und was der Kunde sehen möchte.

Regler:

Empfangen Sie Benutzeranforderungen, delegieren Sie sie zur Verarbeitung an das Modell (Statusänderung) und geben Sie die zurückgegebenen Modelldaten nach der Verarbeitung an die Ansicht zurück, und die Ansicht ist für die Anzeige verantwortlich. Das heißt, der Controller erledigt die Arbeit eines Dispatchers.

2. Überprüfen Sie Servlets

Ein Programm, das auf einem Webserver oder Anwendungsserver ausgeführt wird und als Zwischenschicht zwischen Anforderungen von Webbrowsern oder anderen HTTP-Clients und Datenbanken oder Anwendungen auf dem HTTP-Server fungiert

2.1: Beispiel:

1. Erstellen Sie ein neues Maven-Projekt und führen Sie pom-Abhängigkeiten ein

2. Erstellen Sie ein Moudle, fügen Sie Webunterstützung hinzu und importieren Sie Servlet- und JSP-JAR-Abhängigkeiten:

3. Schreiben Sie eine Servlet-Klasse, um Benutzeranforderungen zu verarbeiten

4. Erstellen Sie einen neuen jsp-Ordner im WEB-INF-Verzeichnis und erstellen Sie eine neue hello.jsp

5. Registrieren Sie das Servlet in web.xml

6. Testen

localhost:8080?method=hinzufügen

2.2: Was macht das MVC-Framework:

  1. Methoden, die URLs Java-Klassen oder Java-Klassen zuordnen.
  2. Kapselt vom Benutzer übermittelte Daten.
  3. Verarbeitung von Anfragen – Anrufbezogene Geschäftsverarbeitung – Einkapseln von Antwortdaten.
  4. Rendern der Antwortdaten Präsentationsschichtdaten wie jsp/html.

3.SpringMvc

Spring MVC ist ein leichtgewichtiges Web-Framework, das auf Java-basiertem MVC basiert

3.1: Eigenschaften:

1. Leicht, einfach zu erlernen

2. Effizientes, Request-Response-basiertes MVC-Framework

3. Gute Kompatibilität mit Frühling, nahtlose Integration

4. Konvention über Konfiguration

5. Leistungsstarke Funktion

6. Prägnant

3.2: Prinzip:

Wenn eine Anfrage initiiert wird, wird die Anfrage vom Front-End-Controller abgefangen, eine Proxy-Anfrage wird gemäß den Anfrageparametern generiert, der tatsächliche Controller, der der Anfrage entspricht, wird gefunden, der Controller verarbeitet die Anfrage, erstellt ein Datenmodell, greift zu die Datenbank, antwortet dem zentralen Controller mit dem Modell und steuert. Der Controller verwendet das Modell und die Ansicht, um die Ansichtsergebnisse wiederzugeben, gibt die Ergebnisse an den zentralen Controller zurück und gibt die Ergebnisse dann an den Anforderer zurück.

 3.3: SpringMVC-Ausführungsprinzip:

Das Bild zeigt ein relativ vollständiges Flussdiagramm von SpringMVC. Die durchgezogene Linie zeigt die vom SpringMVC-Framework bereitgestellte Technologie an, die nicht von Entwicklern implementiert werden muss. Die gepunktete Linie zeigt an, dass Entwickler sie implementieren müssen.

Umsetzungsprozess:

1. DispatcherServlet stellt den Front-Controller dar und ist das Kontrollzentrum des gesamten Spring-MVC. Der Benutzer stellt eine Anfrage, und DispatcherServlet empfängt die Anfrage und fängt die Anfrage ab.

2.HandlerMapping ist Prozessor-Mapping. DispatcherServlet ruft HandlerMapping auf, HandlerMapping findet Handler gemäß der Anfrage-URL

3. HandlerExceution stellt einen bestimmten Handler dar, der verwendet wird, um den entsprechenden Controller gemäß der URL zu finden.

4.HandlerExceution übergibt die geparsten Informationen an DispacherServlet.

5. HandlerAdapter stellt den Prozessoradapter dar und führt den Handler gemäß den Regeln aus.

6. Der Handler fordert den Controller ausdrücklich zur Ausführung auf

7. Der Controller gibt den logischen Namen oder das Modell der Ansicht an HandlerAdapter zurück

8. HandlerAdapter gibt den logischen Namen oder das Modell der Ansicht an DispatcherServlet zurück

9. DispatcherServlet ruft den Ansichtsauflöser (ViewResolver) auf, um den logischen Namen der von HandlerAdapter übergebenen Ansicht aufzulösen

10. Der Ansichtsauflöser (ViewResolver) übergibt den logischen Namen der geparsten Ansicht an DispatcherServlet.

11. DispatcherServlet ruft eine bestimmte Ansicht basierend auf dem geparsten Ansichtsergebnis auf

12. Zeigen Sie dem Benutzer die Ansicht

4. Spring MVC-Programmierung

4.1: Konfigurationsversion

Web.xml konfigurieren, DispatcherServlet registrieren

Erstellen Sie eine neue springmvc-servlet.xml, fügen Sie einen Verarbeitungs-Mapper hinzu, fügen Sie einen Prozessoradapter hinzu, fügen Sie einen View-Resolver hinzu

 

Erstellen Sie einen neuen Controller, geben Sie ein ModelAndView zurück, laden Sie Daten und versiegeln Sie die Ansicht

Bohne registrieren

Die jsp-Seite, die springt, zeigt die in ModelandView gespeicherten Daten

Test starten:

localhost:8080/Hallo

4.2: Kommentierte Version

web.xml konfigurieren:

Ändern Sie die Konfigurationsdatei springmvc-servlet.xml:

Erstellen Sie eine Controller-Steuerelementklasse:

Erstellen Sie eine Ansicht:

lib hinzufügen (wenn Sie es nicht hinzufügen, wird die Schnittstelle nicht gefunden):

Test starten:

localhost:8080/Hallo

4.3: Zusammenfassung

Schritt:

  1. Erstellen Sie ein neues Webprojekt
  2. Importieren Sie zugehörige JAR-Pakete
  3. Schreiben Sie web.xml, registrieren Sie DispatcherServlet
  4. Springmvc-Konfigurationsdatei schreiben
  5. Der nächste Schritt besteht darin, die entsprechende Kontrollklasse Controller zu erstellen
  6. Verbessern Sie schließlich die Korrespondenz zwischen der Frontend-Ansicht und dem Controller
  7. Testlauf debuggen.

Um springMvc zu verwenden, müssen Sie Folgendes registrieren: Prozessor-Mapper, Prozessoradapter und View-Resolver; der View-Resolver muss manuell konfiguriert werden, und die anderen müssen nur Anmerkungen aktivieren.

5. Ruhiger Stil

Restful ist ein Stil der Ressourcenlokalisierung und des Ressourcenbetriebs. Kein Standard oder Protokoll, nur ein Stil. Auf diesem Stil basierende Software kann prägnanter, vielschichtiger und einfacher zu implementierende Mechanismen wie Caching sein.

Funktion:

Verwenden Sie POST, DELETE, PUT, GET, um Ressourcen auf unterschiedliche Weise zu bearbeiten

Anfragetyp:

@GetMapping("/hello") //Get-Request verarbeiten

@PostMapping("/hello") //Verarbeitung von Post-Anfragen, eher geneigt, Informationen hinzuzufügen

@PutMapping("/hello") //Wie post, eher geneigt, Informationen zu aktualisieren

@DeleteMapping("/hello") //Löschanforderung verarbeiten

@PatchMapping("/hello") //Patch-Methode ist eine Ergänzung zur put-Methode, die aktualisiert werden kann. Aber die Aktualisierung ist das Ganze. Patch ist eine Teilaktualisierung

Empfangsparameter:

@RequestParam

Abrufmethode: http://localhost:8080/hello?param=10

@PathVariable

Abrufmethode: http://localhost:8080/hello/101

@RequestBody

6. Weiterleitung und Umleitung

Der größte Unterschied zwischen Weiterleitung und Umleitung ist: Bei der Umleitung funktioniert der Browser und bei der Weiterleitung funktioniert der Server.

Die Weiterleitung kann eine beliebige URL sein, die Weiterleitung muss jedoch die aktuelle URL sein.

Weiterleiten (weiterleiten: Weiterleitung anfordern (Präfix und Suffix entfernen)):

mv.setViewName("str");

str="forward: path"-Anfragen werden an eine jsp weitergeleitet

str="forward: Mapping of Controller"-Request wird an eine Controller-Methode weitergeleitet

Umleitung (Umleitung: Umleitung):

mv.setViewName("str");

str="redirect: path"-Anforderung wird an eine JSP weitergeleitet

str="redirect: controller mapping"-Anfragen werden an eine Controller-Methode weitergeleitet

Beispiel:

Zum Beispiel ging Xiao Ming zum KFC-Fenster A, um einen Eimer für die Familie zu kaufen, aber der Kellner am Fenster A stellte fest, dass es keinen mehr gab, aber Fenster B hatte es noch; dann brachte er es Ihnen aus Fenster B, das als Weiterleitung bezeichnet wird ; Umleitung genannt.

8. Problem mit verstümmeltem Code

Das Problem verstümmelter Zeichen ist ein sehr häufiges Problem in unserer Entwicklung

Lösung:

1. Das Problem verstümmelter Zeichen wird durch Filter gelöst, und SpringMVC stellt uns einen Filter zur Verfügung, der in web.xml konfiguriert werden kann

Hinweis: Schreiben Sie hier /*, wenn Sie / schreiben, können Sie keine jsp-Seiten filtern und keine verstümmelten Zeichen lösen

Aber wir haben festgestellt, dass dieser Filter in einigen extremen Fällen nicht gut unterstützt.

2. Ändern Sie die Tomcat-Konfigurationsdatei und legen Sie die Codierung fest:

3. Benutzerdefinierter Filter (universal):

Unter normalen Umständen kann die standardmäßig verstümmelte Verarbeitung von SpringMVC sehr gut gelöst werden! Dann konfigurieren Sie diesen Filter in der web.xml!

Dem Problem verstümmelter Zeichen sollte zu normalen Zeiten mehr Aufmerksamkeit geschenkt werden.Wo die Codierung so weit wie möglich eingestellt werden kann, wird sie auf die einheitliche Codierung UTF-8 eingestellt!

9. Abfangjäger

Interceptor: Wird hauptsächlich verwendet, um Benutzeranfragen abzufangen und entsprechend zu verarbeiten

Der Unterschied zwischen einem Filter und einem Interceptor: Ein Interceptor ist eine spezifische Anwendung der AOP-Idee.

Filter

Teil der Servlet-Spezifikation, die jedes Javaweb-Projekt verwenden kann

Nach der Konfiguration von /* im URL-Muster können alle Ressourcen, auf die zugegriffen werden soll, abgefangen werden

Abfangjäger

Der Interceptor ist das SpringMVC-Framework selbst, und nur Projekte, die das SpringMVC-Framework verwenden, können es verwenden

Der Interceptor fängt nur die Controller-Methode ab, auf die zugegriffen wird, wenn der Zugriff jsp/html/css/image/js ist, wird er nicht abgefangen

Beispiel:

1. Schreiben Sie einen Interceptor (die HandlerInterceptor-Schnittstelle muss implementiert werden), die preHandle-Methode führt die Interception-Verarbeitung durch und die anderen beiden Methoden müssen nicht neu geschrieben werden (Verarbeitung von Protokollen).

Konfigurieren Sie den Interceptor in der Konfigurationsdatei von springmvc:

Test: http://localhost:8080/t1

Supongo que te gusta

Origin blog.csdn.net/qq_35056891/article/details/126947700
Recomendado
Clasificación