MVC in JSP (Archistructuur)
Wat is MVC?
MVC is een architectuur die bedrijfslogica, presentatie en data scheidt. In MVC,
- M staat voor Model
- V staat voor Uitzicht
- C staat voor regelaar.
MVC is een systematische manier om de applicatie te gebruiken waarbij de stroom begint vanuit de weergavelaag, waar het verzoek wordt ingediend en verwerkt in de controllerlaag en naar de modellaag wordt gestuurd om gegevens in te voegen en het succes- of mislukkingsbericht terug te krijgen. De MVC ArchiHet structuurdiagram wordt hieronder weergegeven:

Modellaag
- Dit is de datalaag die bestaat uit de bedrijfslogica van het systeem.
- Het bestaat uit alle gegevens van de applicatie
- Het vertegenwoordigt ook de status van de applicatie.
- Het bestaat uit klassen die een verbinding hebben met de databank.
- De controller maakt verbinding met het model, haalt de gegevens op en verzendt deze naar de weergavelaag.
- Het model maakt ook verbinding met de database en slaat de gegevens op in een database die daarmee verbonden is.
Laag bekijken
- Dit is een presentatielaag.
- Het bestaat uit HTML, JSP, etc. erin.
- Normaal gesproken presenteert het de gebruikersinterface van de applicatie.
- Het wordt gebruikt om de gegevens weer te geven die worden opgehaald van de controller, die op zijn beurt gegevens ophaalt uit modellaagklassen.
- Deze weergavelaag toont de gegevens over de gebruikersinterface van de applicatie.
Controllerlaag
- Het fungeert als een interface tussen View en Model.
- Het onderschept alle verzoeken die afkomstig zijn van de weergavelaag.
- Het ontvangt de verzoeken van de weergavelaag, verwerkt de verzoeken en voert de noodzakelijke validatie voor het verzoek uit.
- Deze verzoeken worden vervolgens naar de modellaag gestuurd voor gegevensverwerking. Zodra het verzoek is verwerkt, wordt het teruggestuurd naar de controller met de vereiste informatie en dienovereenkomstig weergegeven in de weergave.
Voordelen van MVC Architectuur
De voordelen van MVC zijn:
- Gemakkelijk te onderhouden
- Makkelijk te verlengen
- Makkelijk te testen
- De navigatiecontrole is gecentraliseerd
Voorbeeld van JSP-applicatieontwerp met MVC Architectuur
In dit voorbeeld laten we zien hoe u MVC-architectuur in JSP kunt gebruiken.
- We nemen het voorbeeld van een formulier met twee variabelen, "e-mail" en "wachtwoord", wat onze weergavelaag is.
- Zodra de gebruiker het e-mailadres en wachtwoord invoert en op Verzenden klikt, wordt de actie doorgegeven aan mvc_servlet, waar het e-mailadres en wachtwoord worden doorgegeven.
- Deze mvc_servlet is de controllerlaag. Hier in mvc_servlet wordt het verzoek verzonden naar het bean-object dat als modellaag fungeert.
- De waarden voor het e-mailadres en wachtwoord worden in de bean vastgelegd en voor later gebruik opgeslagen.
- Van de bean wordt de waarde opgehaald en weergegeven in de weergavelaag.
Mvc_voorbeeld.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>
Uitleg van de code:
Bekijk laag:
Coderegel 10-15: Hier nemen we een formulier dat twee velden heeft als parameter "e-mail" en "wachtwoord" en dit verzoek moet worden doorgestuurd naar een controller Mvc_servlet.java, die in actie wordt doorgegeven. De methode waarmee het wordt doorgegeven is de 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); } }
Uitleg van de code:
Controllerlaag
Coderegel 14:mvc_servlet breidt HttpServlet uit.
Coderegel 26: Omdat de gebruikte methode POST is, komt het verzoek in een doPost-methode van de servlet die de verzoeken verwerkt en opslaat in het bean-object als testobj.
Coderegel 34: Met behulp van het verzoekobject stellen we het attribuut in als gurubean, waaraan de waarde testobj wordt toegewezen.
Coderegel 35: Hier gebruiken we het request dispatcher-object om het succesbericht door te geven aan mvc_success.jsp
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"; }
Uitleg van de code:
Modellaag:
Coderegel 7-17: Het bevat de getters en setters van e-mail en wachtwoord die lid zijn van de Test Bean-klasse
Coderegel 19-20: Het definieert het e-mailadres en wachtwoord van de leden van het type string in de 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>
Uitleg van de code:
Coderegel 12: we krijgen het attribuut met behulp van een verzoekobject dat is ingesteld in de doPost-methode van de servlet.
Coderegel 13: We printen het welkomstbericht en het e-mailadres dat is opgeslagen in het bean-object
Output:
Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer:
Wanneer u op mvc_example.jsp klikt, krijgt u het formulier met e-mailadres en wachtwoord met de verzendknop.
Zodra u uw e-mailadres en wachtwoord in het formulier invoert en vervolgens op Verzenden klikt
Nadat u op verzenden heeft geklikt, wordt de uitvoer weergegeven zoals hieronder
Output:
Wanneer u uw e-mailadres en wachtwoord op het scherm invoert en op Verzenden klikt, worden de gegevens opgeslagen in TestBean. Vanuit TestBean worden ze op het volgende scherm opgehaald om het succesbericht te krijgen.
Samenvatting
In dit artikel hebben we geleerd over de MVC-architectuur (Model View Controller).
JSP speelt de rol van presentatie van de gegevens en controller. Het is een interface tussen model en weergave, terwijl het model zowel verbinding maakt met de controller als met de database. De belangrijkste bedrijfslogica is aanwezig in de modellaag.