Architektúra MVC v JSP s príkladom

Obsah:

Anonim

Čo je to MVC?

MVC je architektúra, ktorá oddeľuje obchodnú logiku, prezentáciu a údaje. V MVC

  • M znamená Model
  • V znamená View
  • C znamená ovládač.

MVC je systematický spôsob použitia aplikácie, kde tok začína z vrstvy zobrazenia, kde sa požiadavka vyvolá a spracuje vo vrstve radiča a odošle sa do vrstvy modelu na vloženie údajov a získanie správy o úspechu alebo zlyhaní.

Vrstva modelu:

  • Toto je dátová vrstva, ktorá pozostáva z obchodnej logiky systému.
  • Skladá sa zo všetkých údajov aplikácie
  • Predstavuje tiež stav aplikácie.
  • Skladá sa z tried, ktoré majú pripojenie k databáze.
  • Kontrolér sa spojí s modelom a načíta dáta a odošle ich do zobrazovacej vrstvy.
  • Model sa tiež spojí s databázou a uloží údaje do databázy, ktorá je k nej pripojená.

Zobraziť vrstvu:

  • Toto je prezentačná vrstva.
  • Skladá sa z HTML, JSP atď.
  • Normálne predstavuje používateľské rozhranie aplikácie.
  • Používa sa na zobrazenie údajov načítaných z radiča, ktoré zase načítajú údaje z tried modelových vrstiev.
  • Táto vrstva zobrazenia zobrazuje údaje o používateľskom rozhraní aplikácie.

Vrstva radiča:

  • Funguje ako rozhranie medzi zobrazením a modelom.
  • Zachytáva všetky požiadavky, ktoré prichádzajú z vrstvy zobrazenia.
  • Prijíma požiadavky z vrstvy zobrazenia a spracuje ich a vykoná potrebné overenie požiadavky.
  • Tieto požiadavky sa ďalej odosielajú do modelovej vrstvy na spracovanie údajov a po spracovaní žiadosti sa odošlú späť do kontrolóra s požadovanými informáciami a zodpovedajúcim spôsobom sa zobrazia v zobrazení.

Schéma je znázornená nižšie:

Výhody MVC sú:

  • Ľahko sa udržuje
  • Ľahko sa rozširuje
  • Ľahko testovateľné
  • Ovládanie navigácie je centralizované

Ukážka architektúry MVC

V tomto príklade si ukážeme, ako používať architektúru MVC v JSP.

  • Berieme si príklad formulára s dvoma premennými „email“ a „heslo“, čo je naša vrstva zobrazenia.
  • Akonáhle používateľ zadá e-mail a heslo a klikne na tlačidlo odoslať, potom sa akcia odošle do mvc_servlet, kde sa odošle e-mail a heslo.
  • Tento mvc_servlet je riadiaca vrstva. Tu v mvc_servlet sa požiadavka odošle do objektu bean, ktorý funguje ako modelová vrstva.
  • Hodnoty e-mailu a hesla sa nastavia do fazule a uložia sa na ďalšie účely.
  • Z fazule sa hodnota načíta a zobrazí vo vrstve zobrazenia.

Mvc_example.jsp

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

Vysvetlenie kódu:

Zobraziť vrstvu:

Riadok kódu 10-15: Tu používame formulár, ktorý má dve polia ako parameter „e-mail“ a „heslo“, a túto požiadavku je potrebné postúpiť kontrolóru Mvc_servlet.java, ktorý sa odovzdáva v akcii. Metóda, cez ktorú sa používa je odovzdaný je metóda 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;/ *** Trieda implementácie servletu Mvc_servlet* /verejná trieda Mvc_servlet rozširuje HttpServlet {súkromná statická konečná dlhá serialVersionUID = 1L;/ *** @ pozri HttpServlet # HttpServlet ()* /public Mvc_servlet () {Super();// TODO Automaticky generovaný útržok konštruktora}protected void doPost (požiadavka HttpServletRequest, odpoveď HttpServletResponse) vyvolá ServletException, IOException {// TODO Automaticky generovaný pahýl metódyReťazec email = request.getParameter ("email");Reťazec 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.predať (požiadavka, odpoveď);}}

Vysvetlenie kódu:

Ovládacia vrstva

Riadok kódu 14: mvc_servlet rozširuje HttpServlet.

Riadok kódu 26: Pretože použitá metóda je POST, požiadavka preto prichádza do metódy doPost servletu, ktorá spracuje požiadavky a uloží ich do objektu bean ako testobj.

Riadok kódu 34: Pomocou objektu požiadavky nastavujeme atribút ako gurubean, ktorému je priradená hodnota testobj.

Riadok kódu 35: Tu používame objekt dispečera požiadaviek na odovzdanie správy o úspechu mvc_success.jsp

TestBean.java

balíček demotest;import java.io.Serializovateľný;verejná trieda TestBean implementuje Serializable {verejný reťazec getEmail () {spätný e-mail;}public void setEmail (reťazcový e-mail) {this.email = e-mail;}public String getPassword () {návratové heslo;}public void setPassword (heslo reťazca) {this.password = heslo;}private String email = "null";private String password = "null";}

Vysvetlenie kódu:

Vrstva modelu:

Riadok kódu 7-17: Obsahuje získavajúcich a nastavujúcich e-mail a heslo, ktorí sú členmi triedy Test Bean

Riadok kódu 19-20: Definuje e-mail a heslo člena typu reťazca v triede fazule.

Mvc_success.jsp

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

Vysvetlenie kódu:

Riadok kódu 12: atribút dostávame pomocou objektu request, ktorý bol nastavený v metóde doPost servletu.

Riadok kódu 13: Tlačíme uvítaciu správu a ID e-mailu, ktoré boli uložené v objekte fazule

Výkon:

Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup:

Po kliknutí na mvc_example.jsp získate formulár s e-mailom a heslom pomocou tlačidla odoslať.

Po zadaní e-mailu a hesla do formulára a následnom kliknutí na odoslanie

Po kliknutí na odoslanie sa výstup zobrazí nižšie

Výkon:

Keď na obrazovke zadáte e-mail a heslo a kliknete na tlačidlo Odoslať, podrobnosti sa uložia do TestBeanu a z TestBeanu sa načítajú na ďalšej obrazovke, aby sa zobrazila správa o úspechu.

Zhrnutie:

V tomto článku sme sa dozvedeli o architektúre MVC tj Model View Controller.

JSP zohráva úlohu prezentácie údajov a správcu. Jedná sa o rozhranie medzi modelom a zobrazením, zatiaľ čo sa model pripája k radiču aj k databáze. Hlavná obchodná logika je prítomná vo vrstve modelu.