MVC JSP-ben (Architectúra)
Mi az MVC?
Az MVC egy olyan architektúra, amely elválasztja az üzleti logikát, a megjelenítést és az adatokat. Az MVC-ben
- Az M a modell rövidítése
- A V a View rövidítése
- A C a vezérlőt jelenti.
Az MVC egy szisztematikus módja az alkalmazás használatának, ahol az áramlás a nézeti rétegből indul, ahol a kérést felvetik és feldolgozzák a vezérlőrétegben, majd elküldik a modellrétegnek az adatok beszúrása és a siker vagy hiba üzenet visszakérése érdekében. Az MVC ArchiA tektúra diagramja az alábbiakban látható:

Modellréteg
- Ez az adatréteg, amely a rendszer üzleti logikájából áll.
- Az alkalmazás összes adatát tartalmazza
- Az alkalmazás állapotát is jelzi.
- Osztályokból áll, amelyek kapcsolatban állnak a adatbázis.
- A vezérlő csatlakozik a modellhez, lekéri az adatokat, és elküldi a nézetrétegnek.
- A modell az adatbázishoz is kapcsolódik, és az adatokat egy ahhoz kapcsolódó adatbázisban tárolja.
Réteg megtekintése
- Ez egy prezentációs réteg.
- HTML-ből, JSP-ből stb. áll benne.
- Általában az alkalmazás felhasználói felületét mutatja be.
- A vezérlőtől beolvasott adatok megjelenítésére szolgál, amely viszont adatokat kér le a modellréteg-osztályokból.
- Ez a nézetréteg az alkalmazás felhasználói felületének adatait jeleníti meg.
Vezérlőréteg
- Interfészként működik a View és a Model között.
- Elfogja a nézetrétegből érkező összes kérést.
- Megkapja a kéréseket a nézetrétegtől, feldolgozza a kéréseket, és elvégzi a kéréshez szükséges érvényesítést.
- Ezek a kérések továbbküldésre kerülnek a modellrétegre adatfeldolgozás céljából, majd a kérés feldolgozása után a szükséges információkkal visszaküldik a vezérlőnek, és ennek megfelelően jelennek meg a nézetben.
Az MVC előnyei Architectúra
Az MVC előnyei:
- Könnyen karbantartható
- Könnyen bővíthető
- Könnyen tesztelhető
- A navigációs vezérlés központosított
Példa JSP-alkalmazástervezésre MVC-vel Architectúra
Ebben a példában bemutatjuk, hogyan kell használni az MVC architektúrát JSP-ben.
- Példát hozunk egy űrlapra, amelynek két változója az „e-mail” és a „password” a nézeti rétegünk.
- Miután a felhasználó megadja az e-mail címét és a jelszavát, és rákattint az elküldésre, a műveletet az mvc_servlet adja át, ahol az e-mail és a jelszó átadásra kerül.
- Ez az mvc_servlet egy vezérlőréteg. Itt az mvc_servletben a kérés elküldésre kerül a komponens objektumnak, amely modellrétegként működik.
- Az e-mail és a jelszó értékeket a rendszer beállítja a komponensbe, és további célokra tárolja.
- A komponensből a rendszer lekéri az értéket, és megjelenik a nézeti rétegben.
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>
A kód magyarázata:
Réteg megtekintése:
10-15. kódsor: Itt egy olyan űrlapot veszünk fel, amely két mezőt tartalmaz "e-mail" és "password" paraméterként, és ezt a kérést továbbítani kell egy Mvc_servlet.java vezérlőnek, amelyet működés közben továbbítanak. Az a módszer, amelyen keresztül továbbítják, a POST módszer.
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); } }
A kód magyarázata:
Vezérlő réteg
14. kódsor:Az mvc_servlet kiterjeszti a HttpServlet-et.
26. kódsor: Mivel a használt metódus a POST, így a request a servlet doPost metódusába kerül, amely feldolgozza a kéréseket, és testobj néven menti a komponens objektumba.
34. kódsor: A request objektum segítségével az attribútumot gurubean-ként állítjuk be, amelyhez a testobj értéke van hozzárendelve.
35. kódsor: Itt kérés diszpécser objektumot használunk a sikerüzenet átadására az mvc_success.jsp címre
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"; }
A kód magyarázata:
Modell réteg:
7-17. kódsor: Tartalmazza az e-mail és jelszó gettereit és beállítóit, amelyek a Test Bean osztály tagjai
19-20. kódsor: Meghatározza a tagok e-mail címét és karakterlánc típusú jelszavát a komponens osztályban.
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>
A kód magyarázata:
12. kódsor: az attribútumot a servlet doPost metódusában beállított request objektummal kapjuk meg.
13. kódsor: Kinyomtatjuk az üdvözlő üzenetet és az e-mail azonosítót, amely a bab objektumban el lett mentve
output:
Amikor végrehajtja a fenti kódot, a következő kimenetet kapja:
Ha rákattint az mvc_example.jsp fájlra, megkapja az űrlapot e-mail címmel és jelszóval a küldés gombbal.
Miután megadta az e-mail címet és a jelszót az űrlaphoz, majd kattintson a küldés gombra
A küldés gombra kattintva a kimenet az alábbiak szerint jelenik meg
output:
Ha beírja az e-mail címet és a jelszót a képernyőn, majd rákattint a küldés gombra, a részletek a TestBeanben mentődnek, és a következő képernyőn kerülnek le a TestBeanből, hogy megkapják a sikerüzenetet.
Összegzésként
Ebben a cikkben megismerkedtünk az MVC, azaz a Model View Controller architektúrával.
JSP az adatok és az adatkezelő szerepét tölti be. Ez egy interfész a modell és a nézet között, míg a modell csatlakozik a vezérlőhöz és az adatbázishoz is. A fő üzleti logika jelen van a modellrétegben.