Arhitektura MVC v JSP s primerom

Kazalo:

Anonim

Kaj je MVC?

MVC je arhitektura, ki ločuje poslovno logiko, predstavitev in podatke. V MVC,

  • M pomeni Model
  • V pomeni Pogled
  • C pomeni krmilnik.

MVC je sistematičen način uporabe aplikacije, pri kateri se tok začne iz sloja pogleda, kjer se zahteva dvigne in obdela v plasti krmilnika in pošlje na plast modela, da vstavi podatke in dobi nazaj sporočilo o uspehu ali neuspehu.

Model Layer:

  • To je podatkovna plast, ki jo sestavlja poslovna logika sistema.
  • Sestavljen je iz vseh podatkov aplikacije
  • Predstavlja tudi stanje prijave.
  • Sestavljen je iz razredov, ki so povezani s podatkovno bazo.
  • Krmilnik se poveže z modelom in pridobi podatke ter jih pošlje v plast pogleda.
  • Model se poveže tudi z bazo podatkov in podatke shrani v bazo podatkov, ki je z njo povezana.

Pogled sloja:

  • To je predstavitveni sloj.
  • Vanj je vključen HTML, JSP itd.
  • Običajno predstavlja uporabniški vmesnik aplikacije.
  • Uporablja se za prikaz podatkov, ki jih pridobi krmilnik, ta pa podatke iz razredov slojev modela.
  • Ta plast pogleda prikazuje podatke o uporabniškem vmesniku aplikacije.

Plast krmilnika:

  • Deluje kot vmesnik med pogledom in modelom.
  • Prestreže vse zahteve, ki prihajajo iz sloja pogleda.
  • Sprejema zahteve iz sloja pogleda in jih obdela in opravi potrebno potrditev zahteve.
  • Te zahteve se nato pošljejo v modelni sloj za obdelavo podatkov in ko je zahteva obdelana, pošlje nazaj krmilniku z zahtevanimi informacijami in jih ustrezno prikaže pogled.

Diagram je predstavljen spodaj:

Prednosti MVC so:

  • Enostavno vzdrževanje
  • Enostavno podaljšanje
  • Enostaven za preizkus
  • Nadzor navigacije je centraliziran

Primer arhitekture MVC

V tem primeru bomo pokazali, kako uporabljati arhitekturo MVC v JSP.

  • Vzemimo primer obrazca z dvema spremenljivkama "email" in "password", ki je naša plast pogleda.
  • Ko uporabnik vnese e-pošto in geslo ter klikne na predloži, se dejanje prenese v mvc_servlet, kjer sta posredovana e-pošta in geslo.
  • Ta mvc_servlet je plast krmilnika. Tukaj v mvc_servlet se zahteva pošlje objektu zrna, ki deluje kot modelna plast.
  • Vrednosti e-pošte in gesla se nastavijo v zrno in shranijo za nadaljnji namen.
  • Iz zrna je vrednost pridobljena in prikazana v sloju pogleda.

Mvc_example.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Primer guruja MVC 
E-pošta:
Geslo:

Pojasnilo kode:

Pogled sloja:

Kodijska vrstica 10-15: Tu imamo obliko, ki ima dva polja kot parameter "e-pošta" in "geslo" in to zahtevo je treba poslati krmilniku Mvc_servlet.java, ki se posreduje v akciji. Metoda, prek katere je posredovana je metoda POST.

Mvc_servlet.java

demotest paketa;import java.io.IOException;uvoz javax.servlet.RequestDispatcher;uvoz javax.servlet.ServletException;uvoz javax.servlet.http.HttpServlet;uvoz javax.servlet.http.HttpServletRequest;uvoz javax.servlet.http.HttpServletResponse;/ *** Razred izvajanja strežniškega programčka Mvc_servlet* /javni razred Mvc_servlet razširja HttpServlet {zasebni statični final long serialVersionUID = 1L;/ *** @ glej HttpServlet # HttpServlet ()* /javni Mvc_servlet () {super ();// TODO Samodejno ustvarjen stub konstruktorja}zaščitena void doPost (zahteva HttpServletRequest, odgovor HttpServletResponse) vrže ServletException, IOException {// TODO Samodejno ustvarjena škrbina metodeString email = request.getParameter ("email");Niz gesla = request.getParameter ("geslo");TestBean testobj = novo TestBean ();testobj.setEmail (e-pošta);testobj.setPassword (geslo);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd.naprej (zahteva, odgovor);}}

Pojasnilo kode:

Krmilna plast

Vrstica kode 14: mvc_servlet razširja HttpServlet.

Vrstica kode 26: Ker je uporabljena metoda POST, zato zahteva pride v doPost metodo strežniškega programčka, ki obdela zahteve in shrani v objekt fižola kot testobj.

34. vrstica kode: Z uporabo predmeta zahteve nastavimo atribut kot gurubean, ki mu je dodeljena vrednost testobj.

Kodijska vrstica 35: Tu uporabljamo objekt dispečerja zahtev za posredovanje sporočila o uspehu na mvc_success.jsp

TestBean.java

demotest paketa;import java.io.Serializable;javni razred TestBean izvaja Serializable {javni niz getEmail () {vrni e-pošto;}public void setEmail (niz e-pošte) {this.email = email;}javni niz getPassword () {vrni geslo;}public void setPassword (niz gesla) {this.password = geslo;}zasebni niz e-pošte = "null";geslo zasebnega niza = "null";}

Pojasnilo kode:

Model Layer:

Vrstica kode 7-17: Vsebuje pridobivalce in nastavitelje e-pošte in gesla, ki so člani razreda Test Bean

Vrstica kode 19-20: Določa e-poštno sporočilo in geslo članov vrste nizov v razredu fižola.

Mvc_success.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ page import = "demotest.TestBean"%> Gurujev uspeh <%TestBean testguru = (TestBean) request.getAttribute ("gurubean");out.print ("Dobrodošli," + testguru.getEmail ());%>

Pojasnilo kode:

Vrstica kode 12: atribut dobimo z uporabo predmeta zahteve, ki je bil nastavljen v metodi doPost strežniškega programčka.

Vrstica kode 13: Tiskamo pozdravno sporočilo in e-poštni ID, ki sta bila shranjena v objektu zrna

Izhod:

Ko zaženete zgornjo kodo, dobite naslednji izhod:

Ko kliknete na mvc_example.jsp, dobite obrazec z e-pošto in geslom z gumbom za oddajo.

Ko v obrazec vnesete e-pošto in geslo in nato kliknete na predloži

Po kliku na oddajo se izpis prikaže kot spodaj

Izhod:

Ko na zaslon vnesete e-pošto in geslo in nato kliknete na »Pošlji«, se podrobnosti shranijo v TestBean, iz TestBean pa na naslednji zaslon, da dobite sporočilo o uspehu.

Povzetek:

V tem članku smo spoznali arhitekturo MVC, tj. Model View Controller.

JSP igra vlogo predstavitve podatkov in krmilnika. Je vmesnik med modelom in pogledom, medtem ko se model poveže tako s krmilnikom kot z bazo podatkov. Glavna poslovna logika je prisotna v sloju modela.