MVC JSP-ben (Architectúra)
⚡ Okos összefoglaló
A JSP-ben található MVC az alkalmazási feladatokat modell, nézet és vezérlő rétegekre osztja, ahol a JSP megjeleníti a nézetet, egy szervlet vezérlőként működik, és JavaA beanek (beans) magukban foglalják a modellt a tiszta, tesztelhető és karbantartható webalkalmazások érdekében.

Mi az MVC?
Az MVC a Model-View-Controller rövidítése. Ez egy olyan szoftvertervezési minta, amely egy alkalmazást három egymással összefüggő rétegre oszt: üzleti logika, megjelenítés és adatok. Az MVC-ben:
- M a Modell rövidítése
- V a View (Kilátás) rövidítése
- C a Controller rövidítése
Az MVC egy szisztematikus módja az alkalmazások fejlesztésének, ahol a folyamat a View rétegen kezdődik. A kérést a felhasználó küldi el, a Controller réteg dolgozza fel, majd a Model rétegnek küldi el adatok beszúrása vagy lekérése céljából. A Model ezután egy sikerről vagy sikertelenségről tájékoztató választ ad vissza, amelyet a View megjelenít a felhasználó számára. Az MVC architektúradiagramja az alábbiakban látható:

Miért érdemes MVC-t használni? ArchiJSP-ben lévő szerkezet?
Ugrás előttping Ha belegondolunk, hogyan működik az MVC JSP-ben, akkor megérthetjük, miért alkalmazzák a fejlesztők ezt a mintát. Az üzleti logika, az adatbázishívások és a HTML keverése egyetlen JSP oldalon belül gyorsan karbantarthatatlan „spagetti” kódot eredményez. Az MVC ezt úgy oldja meg, hogy minden egyes problémának külön réteget ad:
- Code könnyebben olvashatóvá válik, mivel minden fájlnak egyetlen felelőssége van.
- A csapatok párhuzamosan dolgozhatnak a Nézet, a Vezérlő és a Modell elemeken ütközések nélkül.
- Az egységtesztek közvetlenül a modellt célozzák meg, a JSP renderelés érintése nélkül.
- Csereping Egy JSON válaszhoz vagy egy másik sablonmotorhoz tartozó JSP nézet létrehozása egyszerű.
Hogyan működik az MVC JSP-ben?
Egy JSP-alapú MVC alkalmazásban minden réteg egy adott réteghez tartozik. Java technológia. A JSP fájlok megjelenítik a nézetet, egy szervlet vezérlőként működik, és JavaA modellt a Bean-ek foglalják magukban. Az alábbi szakaszok ismertetik az egyes rétegek feladatait.
Modellréteg
- Ez az adatréteg tartalmazza a rendszer üzleti logikáját.
- Az alkalmazás összes adatát tartalmazza.
- Az alkalmazás állapotát is jelzi.
- Ebből épült JavaBeanek vagy POJO-k, amelyek kapcsolódnak a adatbázis.
- A vezérlő kommunikál a modellel az adatok lekérése és továbbítása érdekében a nézet rétegnek.
- A modell csatlakozik az adatbázishoz, és tárolja benne az adatokat.
Réteg megtekintése
- Ez az alkalmazás megjelenítési rétege.
- HTML-ből, JSP-ből, CSS-ből és ... áll. JavaForgatókönyv.
- Általában az alkalmazás felhasználói felületét jeleníti meg.
- Megjeleníti a vezérlőtől lekért adatokat, amely viszont a modell rétegosztályaiból kéri le az adatokat.
- A Nézet réteg az alkalmazás felhasználói felületén jeleníti meg az adatokat üzleti logika nélkül.
Vezérlőréteg
- Interfészként működik a View és a Model között.
- Elfogja az összes kérést, ami a Nézet rétegből érkezik.
- Fogadja a kéréseket a Nézet rétegtől, feldolgozza azokat, és validálja a kéréseket.
- A kérés továbbításra kerül a modell rétegbe adatfeldolgozás céljából. A kérés feldolgozása után a modell visszaküldi az eredményt a vezérlőnek a szükséges információkkal, amelyeket aztán a nézet megjelenít.
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
- A rétegek közötti laza csatolás biztonságosabbá teszi a refaktorálást
- Több csapattag párhuzamos fejlesztése lehetséges
Példa JSP-alkalmazástervezésre MVC-vel Architectúra
Ebben a példában bemutatjuk, hogyan használhatjuk az MVC architektúrát egy JSP alkalmazásban.
- Példaként egy két változóval rendelkező űrlapot vesszük, az „email”-t és a „jelszó”-t, amelyek a Nézet rétegünket képviselik.
- Miután a felhasználó megadja az e-mail címét és jelszavát, majd a Küldés gombra kattint, a művelet átadódik az Mvc_servletnek, ahol az e-mail cím és a jelszó kerül átadásra.
- Az Mvc_servlet a vezérlő réteg. Itt az Mvc_servletben a kérés a bean objektumhoz kerül, amely a modell rétegként működik.
- Az e-mail cím és a jelszó értékei beállítódnak a beanben, és későbbi felhasználás céljából tárolódnak.
- A beanből kiolvassák az értéket, és megjelenítik a Nézet rétegen.
Mvc_example.jsp (Megtekintés)
<%@ 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:
Code 10-15. sor: Itt egy olyan űrlapot veszünk, amelynek két paramétere van: „email” és „password”, és ezt a kérést továbbítani kell egy vezérlőnek, az Mvc_servlet.java fájlnak, amelyet az action attribútumban adunk át. A HTTP metódus, amelyen keresztül átadásra kerül, a POST.
Mvc_servlet.java (Vezérlő)
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:
Code 14 vonal: Az Mvc_servlet kiterjeszti a HttpServlet-et.
Code 26 vonal: Mivel a használt metódus a POST, a kérés a Servlet doPost metódusába kerül, amely feldolgozza a kérést, és testobj néven elmenti a bean objektumba.
Code 34 vonal: A request objektum használatával beállítjuk a „gurubean” attribútumot, amelyhez a testobj értéket rendeljük.
Code 35 vonal: Itt a RequestDispatcher objektumot használjuk a sikerüzenet mvc_success.jsp fájlba történő továbbításához.
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"; }
A kód magyarázata:
Modell réteg:
Code 7-17. sor: Tartalmazza az email és password lekérő és beállító függvényeit, amelyek a TestBean osztály tagjai.
Code 19-20. sor: Ez határozza meg a bean osztály tagjainak String típusú e-mail címét és jelszavát.
Mvc_success.jsp (Eredmény nézet)
<%@ 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:
Code 12 vonal: Az attribútumot a Servlet doPost metódusában beállított kérésobjektum segítségével kérjük le.
Code 13 vonal: Kinyomtatjuk az üdvözlő üzenetet és az e-mail azonosítót, amelyek a bean objektumban lettek mentve.
teljesítmény
Amikor végrehajtja a fenti kódot, a következő kimenetet kapja:
Amikor megnyitod az mvc_example.jsp fájlt, megjelenik egy űrlap email és jelszó mezőkkel, valamint a Küldés gombbal.
Miután beírta az e-mail címét és jelszavát az űrlapba, majd a Küldés gombra kattintott:
A Küldés gombra kattintás után a kimenet az alábbiak szerint jelenik meg:
Amikor megadja az e-mail címét és jelszavát a képernyőn, majd a Küldés gombra kattint, az adatok mentésre kerülnek a TestBeanben. A TestBeanből a következő képernyőn lekéri őket a sikeres műveletről szóló üzenet megjelenítéséhez. JSP az adatok megjelenítését és a nézet biztosítását játssza, míg a Servlet vezérlőként, míg a JavaA Bean szolgál modellként. A fő üzleti logika a modell rétegben található.


