MVC Architecture v JSP s příkladem

Obsah:

Anonim

Co je MVC?

MVC je architektura, která odděluje obchodní logiku, prezentaci a data. V MVC

  • M znamená Model
  • V znamená View
  • C znamená ovladač.

MVC je systematický způsob, jak používat aplikaci, kde tok začíná z vrstvy zobrazení, kde je požadavek vyvolán a zpracován ve vrstvě řadiče a odeslán do vrstvy modelu k vložení dat a získání zprávy o úspěchu nebo selhání.

Vrstva modelu:

  • Toto je datová vrstva, která se skládá z obchodní logiky systému.
  • Skládá se ze všech dat aplikace
  • Představuje také stav aplikace.
  • Skládá se z tříd, které mají připojení k databázi.
  • Řadič se připojí k modelu a načte data a odešle do vrstvy zobrazení.
  • Model se také připojí k databázi a uloží data do databáze, která je k ní připojena.

Zobrazit vrstvu:

  • Toto je prezentační vrstva.
  • Skládá se z HTML, JSP atd.
  • Normálně představuje uživatelské rozhraní aplikace.
  • Používá se k zobrazení dat, která jsou načtena z řadiče, což zase načte data z tříd modelových vrstev.
  • Tato vrstva zobrazení zobrazuje data v uživatelském rozhraní aplikace.

Vrstva řadiče:

  • Funguje jako rozhraní mezi pohledem a modelem.
  • Zachytává všechny požadavky, které přicházejí z vrstvy zobrazení.
  • Přijímá požadavky z vrstvy zobrazení a zpracovává je a provádí potřebné ověření požadavku.
  • Tyto požadavky se dále odesílají do modelové vrstvy ke zpracování dat a po zpracování požadavku se odešle zpět do řadiče s požadovanými informacemi a odpovídajícím způsobem se zobrazí v pohledu.

Schéma je znázorněno níže:

Výhody MVC jsou:

  • Snadná údržba
  • Snadno se prodlužuje
  • Snadné testování
  • Ovládání navigace je centralizované

Příklad architektury MVC

V tomto příkladu si ukážeme, jak používat architekturu MVC v JSP.

  • Vezmeme si příklad formuláře se dvěma proměnnými „email“ a „heslo“, což je naše vrstva zobrazení.
  • Jakmile uživatel zadá e-mail a heslo a klikne na odeslat, akce se předá v mvc_servlet, kde se předá e-mail a heslo.
  • Tento mvc_servlet je vrstva řadiče. Tady v mvc_servlet je požadavek odeslán do objektu bean, který funguje jako modelová vrstva.
  • Hodnoty e-mailu a hesla se nastaví do fazole a uloží se pro další účely.
  • Z fazole se načte hodnota a zobrazí se ve vrstvě zobrazení.

Mvc_example.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Příklad MVC Guru 
E-mail:
Heslo:

Vysvětlení kódu:

Zobrazit vrstvu:

Řádek kódu 10-15: Zde používáme formulář, který má dvě pole jako parametr „e-mail“ a „heslo“, a tento požadavek je třeba předat ovladači Mvc_servlet.java, který je předán v akci. je předán je metoda POST.

Mvc_servlet.java

balíček 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;/ *** Servletová třída implementace Mvc_servlet* /veřejná třída Mvc_servlet rozšiřuje HttpServlet {soukromá statická finální dlouhá serialVersionUID = 1L;/ *** @ viz HttpServlet # HttpServlet ()* /public Mvc_servlet () {super ();// TODO Automaticky generovaný útržek konstruktoru}protected void doPost (požadavek HttpServletRequest, odpověď HttpServletResponse) vyvolá ServletException, IOException {// TODO Automaticky generovaný útržek metodyŘetězec email = request.getParameter ("email");Řetězcové heslo = request.getParameter ("heslo");TestBean testobj = nový TestBean ();testobj.setEmail (e-mail);testobj.setPassword (heslo);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd. vpřed (požadavek, odpověď);}}

Vysvětlení kódu:

Kontrolní vrstva

Řádek kódu 14: mvc_servlet rozšiřuje HttpServlet.

Řádek kódu 26: Protože použitá metoda je POST, požadavek přichází proto do metody doPost servletu, který zpracovává požadavky a ukládá do objektu bean jako testobj.

Řádek kódu 34: Pomocí objektu požadavku nastavujeme atribut jako gurubean, kterému je přiřazena hodnota testobj.

Řádek kódu 35: Zde používáme objekt požadavku dispečera k předání zprávy o úspěchu mvc_success.jsp

TestBean.java

balíček demotest;import java.io.Serializable;veřejná třída TestBean implementuje Serializable {public String getEmail () {zpětný e-mail;}public void setEmail (String email) {this.email = e-mail;}public String getPassword () {návratové heslo;}public void setPassword (heslo řetězce) {this.password = heslo;}private String email = "null";private String password = "null";}

Vysvětlení kódu:

Vrstva modelu:

Řádek kódu 7-17: Obsahuje getry a settery e-mailu a hesla, které jsou členy třídy Test Bean

Řádek kódu 19-20: Definuje e-mail členů a heslo typu řetězce ve třídě bean.

Mvc_success.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ page import = "demotest.TestBean"%> Úspěch guru <%TestBean testguru = (TestBean) request.getAttribute ("gurubean");out.print ("Vítejte," + testguru.getEmail ());%>

Vysvětlení kódu:

Řádek kódu 12: získáváme atribut pomocí objektu požadavku, který byl nastaven v metodě doPost servletu.

Řádek kódu 13: Tiskneme uvítací zprávu a ID e-mailu, které byly uloženy v objektu fazole

Výstup:

Když spustíte výše uvedený kód, získáte následující výstup:

Po kliknutí na mvc_example.jsp získáte formulář s e-mailem a heslem pomocí tlačítka Odeslat.

Jakmile do formuláře zadáte e-mail a heslo a poté kliknete na odeslat

Po kliknutí na odeslání se výstup zobrazí níže

Výstup:

Když na obrazovce zadáte e-mail a heslo a kliknete na odeslat, podrobnosti se uloží do TestBeanu a z TestBeanu se načtou na další obrazovce, aby se zobrazila zpráva o úspěchu.

Souhrn:

V tomto článku jsme se dozvěděli o architektuře MVC tj. Model View Controller.

JSP hraje roli prezentace dat a správce. Jedná se o rozhraní mezi modelem a pohledem, zatímco model se připojuje jak k řadiči, tak k databázi. Hlavní obchodní logika je přítomna ve vrstvě modelu.