MVC in JSP (ArchiStruktur)
⚡ Intelligente Zusammenfassung
Das MVC-Modell in JSP trennt die Anwendungsbelange in die Schichten Model, View und Controller, wobei JSP die View rendert, ein Servlet als Controller fungiert und JavaBeans kapseln das Modell für saubere, testbare und wartbare Webanwendungen.
Was ist MVC?
MVC steht für Model-View-Controller. Es handelt sich um ein Software-Designmuster, das eine Anwendung in drei miteinander verbundene Schichten unterteilt: Geschäftslogik, Präsentation und Daten. Im MVC-Modell gilt Folgendes:
- M steht für Model
- V steht für View (Ansicht)
- C steht für Controller
MVC ist ein systematischer Ansatz zum Erstellen von Anwendungen, bei dem der Datenfluss in der View-Schicht beginnt. Die Anfrage wird vom Benutzer gestellt, in der Controller-Schicht verarbeitet und an die Model-Schicht gesendet, um Daten einzufügen oder abzurufen. Das Model gibt dann eine Erfolgs- oder Fehlermeldung zurück, die die View dem Benutzer anzeigt. Das MVC-Architekturdiagramm ist unten dargestellt:

Warum MVC verwenden? ArchiArchitektur in JSP?
Vor dem Sprungping Um zu verstehen, wie MVC in JSP funktioniert, ist es hilfreich zu wissen, warum Entwickler dieses Muster bevorzugen. Die Vermischung von Geschäftslogik, Datenbankabfragen und HTML innerhalb einer einzigen JSP-Seite führt schnell zu unübersichtlichem, schwer wartbarem Spaghetti-Code. MVC behebt dieses Problem, indem es jedem Bereich eine eigene Schicht zuweist.
- Code wird leichter lesbar, da jede Datei nur eine einzige Aufgabe hat.
- Teams können parallel an View, Controller und Model arbeiten, ohne dass es zu Konflikten kommt.
- Die Unit-Tests zielen direkt auf das Modell ab, ohne die JSP-Darstellung zu beeinflussen.
- Tauschping Eine JSP-Ansicht für eine JSON-Antwort oder eine andere Template-Engine ist unkompliziert.
Wie MVC in JSP funktioniert
In einer JSP-basierten MVC-Anwendung wird jede Schicht einer bestimmten Ebene zugeordnet. Java Technologie. JSP-Dateien rendern die Ansicht, ein Servlet fungiert als Controller, und JavaBeans kapseln das Modell. In den folgenden Abschnitten werden die Verantwortlichkeiten der einzelnen Schichten erläutert.
Modellebene
- Dies ist die Datenschicht, die die Geschäftslogik des Systems enthält.
- Es umfasst alle Daten der Anwendung.
- Es stellt auch den Status der Anwendung dar.
- Es besteht aus JavaBohnen oder POJOs, die sich mit dem/der/den Datenbank.
- Der Controller kommuniziert mit dem Model, um Daten abzurufen und leitet diese an die View-Schicht weiter.
- Das Modell stellt eine Verbindung zur Datenbank her und speichert Daten darin.
Ebene anzeigen
- Dies ist die Präsentationsschicht der Anwendung.
- Es besteht aus HTML, JSP, CSS und JavaSkript.
- Normalerweise wird die Benutzeroberfläche der Anwendung angezeigt.
- Es zeigt die Daten an, die vom Controller abgerufen werden, welcher wiederum Daten aus den Klassen der Modellschicht abruft.
- Die View-Schicht rendert Daten auf der Benutzeroberfläche der Anwendung, ohne Geschäftslogik zu enthalten.
Controller-Ebene
- Es fungiert als Schnittstelle zwischen Ansicht und Modell.
- Es fängt alle Anfragen ab, die von der View-Schicht kommen.
- Es empfängt die Anfragen von der View-Schicht, verarbeitet sie und führt eine Validierung der Anfrage durch.
- Die Anfrage wird zur Datenverarbeitung an die Modellschicht weitergeleitet. Nach der Verarbeitung sendet das Modell das Ergebnis mit den benötigten Informationen zurück an den Controller, der es anschließend in der Ansicht anzeigt.
Vorteile von MVC Architektur
Die Vorteile von MVC sind:
- Pflegeleicht
- Einfach zu erweitern
- Einfach zu testen
- Die Navigationssteuerung ist zentralisiert
- Eine lose Kopplung zwischen den Schichten macht Refactoring sicherer.
- Eine parallele Entwicklung durch mehrere Teammitglieder ist möglich.
Beispiel für JSP-Anwendungsdesign mit MVC Architektur
In diesem Beispiel zeigen wir, wie man die MVC-Architektur in einer JSP-Anwendung verwendet.
- Wir nehmen das Beispiel eines Formulars mit zwei Variablen, „email“ und „password“, die unsere View-Ebene darstellen.
- Sobald der Benutzer E-Mail-Adresse und Passwort eingegeben und auf „Absenden“ geklickt hat, wird die Aktion an Mvc_servlet weitergeleitet, wo dann E-Mail-Adresse und Passwort übergeben werden.
- Mvc_servlet ist die Controller-Schicht. Hier in Mvc_servlet wird die Anfrage an das Bean-Objekt gesendet, das als Modellschicht fungiert.
- Die Werte für E-Mail-Adresse und Passwort werden in der Bean gespeichert und zur späteren Verwendung abgelegt.
- Aus der Bean wird der Wert abgerufen und in der View-Schicht angezeigt.
Mvc_example.jsp (Ansicht)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>MVC Guru Example</title> </head> <body> <form action="Mvc_servlet" method="POST"> Email: <input type="text" name="email"> <br /> Password: <input type="text" name="password" /> <input type="submit" value="Submit" /> </form> </body> </html>
Erklärung des Codes:
Ebene anzeigen:
Code Zeile 10-15: Hier verwenden wir ein Formular mit den beiden Parameterfeldern „E-Mail“ und „Passwort“. Diese Anfrage wird an den Controller Mvc_servlet.java weitergeleitet, der im Attribut „action“ übergeben wird. Die verwendete HTTP-Methode ist POST.
Mvc_servlet.java (Controller)
package demotest; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Mvc_servlet */ public class Mvc_servlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Mvc_servlet() { super(); // TODO Auto-generated constructor stub } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String email=request.getParameter("email"); String password=request.getParameter("password"); TestBean testobj = new TestBean(); testobj.setEmail(email); testobj.setPassword(password); request.setAttribute("gurubean",testobj); RequestDispatcher rd=request.getRequestDispatcher("mvc_success.jsp"); rd.forward(request, response); } }
Erklärung des Codes:
Controller-Schicht:
Code Linie 14: Mvc_servlet erweitert HttpServlet.
Code Linie 26: Da die verwendete Methode POST ist, gelangt die Anfrage in die doPost-Methode des Servlets, welche die Anfrage verarbeitet und sie im Bean-Objekt als testobj speichert.
Code Linie 34: Mithilfe des Anfrageobjekts setzen wir das Attribut „gurubean“, dem der Wert von testobj zugewiesen wird.
Code Linie 35: Hier verwenden wir das RequestDispatcher-Objekt, um die Erfolgsmeldung an mvc_success.jsp weiterzuleiten.
TestBean.java (Modell)
package demotest; import java.io.Serializable; public class TestBean implements Serializable{ public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } private String email="null"; private String password="null"; }
Erklärung des Codes:
Modellebene:
Code Zeile 7-17: Es enthält die Getter und Setter für E-Mail und Passwort, die Mitglieder der Klasse TestBean sind.
Code Zeile 19-20: Es definiert die E-Mail-Adresse und das Passwort der Mitglieder vom Typ String in der Bean-Klasse.
Mvc_success.jsp (Ergebnisansicht)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@page import="demotest.TestBean"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Success</title> </head> <body> <% TestBean testguru=(TestBean)request.getAttribute("gurubean"); out.print("Welcome, "+testguru.getEmail()); %> </body> </html>
Erklärung des Codes:
Code Linie 12: Wir rufen das Attribut mithilfe des Anfrageobjekts ab, das in der doPost-Methode des Servlets festgelegt wurde.
Code Linie 13: Wir geben die Willkommensnachricht und die im Bean-Objekt gespeicherte E-Mail-Adresse aus.
Ausgang
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe:
Wenn Sie mvc_example.jsp öffnen, erhalten Sie das Formular mit Feldern für E-Mail-Adresse und Passwort sowie der Schaltfläche „Absenden“.
Sobald Sie Ihre E-Mail-Adresse und Ihr Passwort in das Formular eingegeben und auf „Absenden“ geklickt haben:
Nach dem Klicken auf „Absenden“ wird die Ausgabe wie folgt angezeigt:
Wenn Sie E-Mail-Adresse und Passwort auf dem Bildschirm eingeben und auf „Absenden“ klicken, werden die Daten in TestBean gespeichert. Aus TestBean werden sie im nächsten Bildschirm abgerufen, um die Erfolgsmeldung anzuzeigen. JSP spielt die Rolle der Datenpräsentation und der Bereitstellung der Ansicht, während das Servlet als Controller und JavaBean dient als Modell. Die eigentliche Geschäftslogik ist in der Modellschicht enthalten.



