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.


