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ó:

MVC Architectúra
MVC Architecture diagram

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

JSP alkalmazástervezés

A küldés gombra kattintva a kimenet az alábbiak szerint jelenik meg

JSP alkalmazástervezés

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.