MVC arhitektura u JSP s primjerom

Sadržaj:

Anonim

Što je MVC?

MVC je arhitektura koja razdvaja poslovnu logiku, prezentaciju i podatke. U MVC-u,

  • M označava Model
  • V znači Pogled
  • C označava kontroler.

MVC je sistematičan način korištenja aplikacije gdje protok započinje iz sloja prikaza, gdje se zahtjev podiže i obrađuje u sloju kontrolera i šalje na sloj modela radi umetanja podataka i vraćanja poruke o uspjehu ili neuspjehu.

Sloj modela:

  • Ovo je podatkovni sloj koji se sastoji od poslovne logike sustava.
  • Sastoji se od svih podataka aplikacije
  • Također predstavlja stanje prijave.
  • Sastoji se od klasa koje imaju vezu s bazom podataka.
  • Kontroler se povezuje s modelom i dohvaća podatke i šalje sloju prikaza.
  • Model se također povezuje s bazom podataka i pohranjuje podatke u bazu podataka koja je s njom povezana.

Prikaži sloj:

  • Ovo je prezentacijski sloj.
  • Sastoji se od HTML-a, JSP-a itd.
  • Obično predstavlja korisničko sučelje aplikacije.
  • Koristi se za prikaz podataka koji se preuzimaju iz kontrolera koji zauzvrat dohvaća podatke iz klasa slojeva modela.
  • Ovaj sloj prikaza prikazuje podatke o korisničkom sučelju aplikacije.

Sloj kontrolera:

  • Djeluje kao sučelje između pogleda i modela.
  • Presreće sve zahtjeve koji dolaze iz sloja prikaza.
  • Prima zahtjeve iz sloja pogleda i obrađuje zahtjeve te vrši potrebnu provjeru valjanosti zahtjeva.
  • Ovaj se zahtjev dalje šalje na sloj modela za obradu podataka, a nakon što se zahtjev obradi, šalje se natrag upravljaču s potrebnim informacijama i prikazan u skladu s tim u prikazu.

Dijagram je predstavljen u nastavku:

Prednosti MVC-a su:

  • Jednostavno za održavanje
  • Lako se produžuje
  • Jednostavno za testiranje
  • Kontrola navigacije centralizirana je

Primjer MVC arhitekture

U ovom ćemo primjeru pokazati kako se koristi MVC arhitektura u JSP-u.

  • Uzimamo primjer obrasca s dvije varijable "e-pošta" i "lozinka", što je naš sloj prikaza.
  • Jednom kada korisnik unese e-poštu i lozinku i klikne na Pošalji, radnja se prenosi u mvc_servlet gdje se prosljeđuju e-pošta i lozinka.
  • Ovaj mvc_servlet je sloj kontrolera. Ovdje u mvc_servlet zahtjev se šalje objektu graha koji djeluje kao sloj modela.
  • Vrijednosti e-pošte i lozinke postavljaju se u grah i pohranjuju za daljnju svrhu.
  • Iz graha se vrijednost dohvaća i prikazuje u sloju prikaza.

Mvc_primjer.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Primjer MVC gurua 
E-adresa:
Lozinka:

Objašnjenje koda:

Prikaži sloj:

Redak koda 10-15: Ovdje uzimamo obrazac koji ima dva polja kao parametar "e-pošta" i "lozinka" i ovaj zahtjev treba proslijediti kontroloru Mvc_servlet.java, koji se prosljeđuje. Metoda kroz koju se je POST metoda.

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;/ *** Klasa implementacije servleta Mvc_servlet* /javna klasa Mvc_servlet proširuje HttpServlet {privatni statički konačni long serialVersionUID = 1L;/ *** @see HttpServlet # HttpServlet ()* /javni Mvc_servlet () {super();// TODO Automatski generirani klizač konstruktora}zaštićena void doPost (zahtjev HttpServletRequest, odgovor HttpServletResponse) baca ServletException, IOException {// TODO Automatski generirani kvar metodeNiz e-pošte = request.getParameter ("e-pošta");Niz lozinke = request.getParameter ("lozinka");TestBean testobj = novi TestBean ();testobj.setEmail (email);testobj.setPassword (lozinka);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd.naprijed (zahtjev, odgovor);}}

Objašnjenje koda:

Sloj kontrolera

Redak 14: mvc_servlet proširuje HttpServlet.

Redak koda 26: Kako se koristi metoda POST, stoga zahtjev dolazi u doPost metodu servleta koja obrađuje zahtjeve i sprema se u objekt graha kao testobj.

Linijska oznaka 34: Koristeći objekt zahtjeva postavljamo atribut kao gurubean kojem se dodjeljuje vrijednost testobj.

Redak koda 35: Ovdje koristimo objekt dispečera zahtjeva za prosljeđivanje poruke o uspjehu na mvc_success.jsp

TestBean.java

demotest paketa;import java.io.Serializable;javna klasa TestBean implementira Serializable {javni String getEmail () {vratiti e-mail;}javna void setEmail (niz e-pošte) {this.email = email;}javni niz getPassword () {vratiti lozinku;}public void setPassword (lozinka niza) {this.password = lozinka;}privatni niz e-pošte = "null";privatni niz lozinke = "null";}

Objašnjenje koda:

Sloj modela:

Kodni redak 7-17: Sadrži dostavljače i postavljače e-pošte i lozinke koji su članovi klase Test Bean

Redak koda 19-20: Definira e-poštu i lozinku članova niza u klasi bean.

Mvc_success.jsp

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

Objašnjenje koda:

Redak koda 12: atribut dobivamo pomoću objekta zahtjeva koji je postavljen u doPost metodi servleta.

Redak 13: Ispisujemo poruku dobrodošlice i ID e-pošte koji su spremljeni u objektu graha

Izlaz:

Kada izvršite gornji kod, dobit ćete sljedeći izlaz:

Kada kliknete na mvc_example.jsp, dobit ćete obrazac s e-poštom i lozinkom s gumbom za slanje.

Nakon što u obrazac unesete e-poštu i lozinku, a zatim kliknite na Pošalji

Nakon klika na pošalji izlaz prikazan je kao ispod

Izlaz:

Kada na ekran unesete e-poštu i lozinku i kliknete na Pošalji, detalji se spremaju u TestBean, a iz TestBeana dohvaćaju se na sljedećem zaslonu kako bi se dobila poruka o uspjehu.

Sažetak:

U ovom smo članku saznali o arhitekturi MVC tj. Model View Controller.

JSP igra ulogu prezentacije podataka i kontrolera. To je sučelje između modela i prikaza, dok se model povezuje s kontrolerom, kao i s bazom podataka. Glavna poslovna logika prisutna je u sloju modela.