MVC in JSP (ArchiStruktur)

Was ist MVC?

MVC ist eine Architektur, die Geschäftslogik, Präsentation und Daten trennt. In MVC

  • M steht für Modell
  • V steht für View
  • C steht für Controller.

MVC ist eine systematische Methode zur Verwendung der Anwendung, bei der der Fluss auf der Ansichtsebene beginnt, wo die Anforderung in der Controller-Ebene erhoben und verarbeitet und an die Modellebene gesendet wird, um Daten einzufügen und die Erfolgs- oder Fehlermeldung zurückzuerhalten. Der MVC ArchiDas Strukturdiagramm ist unten dargestellt:

MVC Architektur
MVC ArchiStrukturdiagramm

Modellebene

  • Dies ist die Datenschicht, die aus der Geschäftslogik des Systems besteht.
  • Es besteht aus allen Daten der Bewerbung
  • Es stellt auch den Status der Anwendung dar.
  • Es besteht aus Klassen, die eine Verbindung zum haben Datenbank.
  • Der Controller stellt eine Verbindung zum Modell her, ruft die Daten ab und sendet sie an die Ansichtsebene.
  • Das Modell stellt auch eine Verbindung zur Datenbank her und speichert die Daten in einer damit verbundenen Datenbank.

Ebene anzeigen

  • Dies ist eine Präsentationsschicht.
  • Darin sind HTML, JSP usw. enthalten.
  • Normalerweise wird die Benutzeroberfläche der Anwendung angezeigt.
  • Es wird verwendet, um die Daten anzuzeigen, die vom Controller abgerufen werden, der wiederum Daten von Modellschichtklassen abruft.
  • Diese Ansichtsebene zeigt die Daten auf der Benutzeroberfläche der Anwendung.

Controller-Ebene

  • Es fungiert als Schnittstelle zwischen Ansicht und Modell.
  • Es fängt alle Anfragen ab, die von der Ansichtsschicht kommen.
  • Es empfängt die Anfragen von der Ansichtsschicht, verarbeitet die Anfragen und führt die erforderliche Validierung für die Anfrage durch.
  • Diese Anfrage wird zur Datenverarbeitung weiter an die Modellebene gesendet. Sobald die Anfrage verarbeitet wurde, wird sie mit den erforderlichen Informationen an den Controller zurückgesendet und entsprechend in der Ansicht angezeigt.

Vorteile von MVC Architektur

Die Vorteile von MVC sind:

  • Pflegeleicht
  • Einfach zu erweitern
  • Einfach zu testen
  • Die Navigationssteuerung ist zentralisiert

Beispiel für JSP-Anwendungsdesign mit MVC Architektur

In diesem Beispiel zeigen wir, wie die MVC-Architektur in JSP verwendet wird.

  • Wir nehmen das Beispiel eines Formulars mit zwei Variablen „E-Mail“ und „Passwort“, das unsere Ansichtsebene darstellt.
  • Sobald der Benutzer E-Mail und Passwort eingibt und auf „Senden“ klickt, wird die Aktion an mvc_servlet übergeben, wo E-Mail und Passwort übergeben werden.
  • Dieses mvc_servlet ist die Controller-Ebene. Hier in mvc_servlet wird die Anfrage an das Bean-Objekt gesendet, das als Modellebene fungiert.
  • Die E-Mail- und Kennwortwerte werden in die Bean eingetragen und für weitere Zwecke gespeichert.
  • Von der Bean wird der Wert abgerufen und in der Ansichtsebene angezeigt.

Mvc_example.jsp

<%@ 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:

Codezeile 10-15: Hier nehmen wir ein Formular, das zwei Felder als Parameter „E-Mail“ und „Passwort“ hat, und diese Anfrage muss an einen Controller Mvc_servlet.java weitergeleitet werden, der in Aktion übergeben wird. Die Methode, durch die sie übergeben wird, ist die POST-Methode.

Mvc_servlet.java

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-Ebene

Codezeile 14:mvc_servlet erweitert HttpServlet.

Codezeile 26: Da die verwendete Methode POST ist, gelangt die Anfrage in eine doPost-Methode des Servlets, die die Anfragen verarbeitet und im Bean-Objekt als testobj speichert.

Codezeile 34: Mithilfe des Anforderungsobjekts setzen wir das Attribut auf „gurubean“, dem der Wert „testobj“ zugewiesen wird.

Codezeile 35: Hier verwenden wir das Request-Dispatcher-Objekt, um die Erfolgsmeldung an mvc_success.jsp zu übergeben

TestBean.java

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:

Codezeile 7-17: Es enthält die Getter und Setter für E-Mail und Passwort, die Mitglieder der Test Bean-Klasse sind

Codezeile 19-20: Es definiert die E-Mail und das Passwort der Mitglieder im Zeichenfolgentyp in der Bean-Klasse.

Mvc_success.jsp

<%@ 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:

Codezeile 12: Wir erhalten das Attribut mithilfe des Anforderungsobjekts, das in der doPost-Methode des Servlets festgelegt wurde.

Codezeile 13: Wir drucken die Willkommensnachricht und die E-Mail-ID, die im Bean-Objekt gespeichert wurden

Ausgang:

Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe:

Wenn Sie auf mvc_example.jsp klicken, erhalten Sie das Formular mit E-Mail und Passwort mit der Schaltfläche „Senden“.

Sobald Sie E-Mail und Passwort in das Formular eingegeben haben, klicken Sie auf „Senden“

JSP-Anwendungsdesign

Nachdem Sie auf „Senden“ geklickt haben, wird die Ausgabe wie folgt angezeigt

JSP-Anwendungsdesign

Ausgang:

Wenn Sie auf dem Bildschirm E-Mail und Passwort eingeben und auf „Senden“ klicken, werden die Details in TestBean gespeichert und auf dem nächsten Bildschirm aus dem TestBean abgerufen, um die Erfolgsmeldung zu erhalten.

Zusammenfassung

In diesem Artikel haben wir etwas über die MVC-Architektur, also die Model-View-Controller-Architektur, gelernt.

JSP spielt die Rolle der Präsentation der Daten und des Controllers. Es ist eine Schnittstelle zwischen Modell und Ansicht, während das Modell sowohl eine Verbindung zum Controller als auch zur Datenbank herstellt. Die Hauptgeschäftslogik ist in der Modellebene vorhanden.