MVC arhitektuur JSP-s koos näitega

Lang L: none (table-of-contents):

Anonim

Mis on MVC?

MVC on arhitektuur, mis eraldab äriloogikat, esitlust ja andmeid. MVC-s

  • M tähistab mudelit
  • V tähistab View
  • C tähistab kontrollerit.

MVC on süstemaatiline viis rakenduse kasutamiseks, kus voog algab vaatekihist, kus taotlus tõstetakse ja töödeldakse kontrollerikihis ning saadetakse mudelikihile andmete sisestamiseks ja edu või ebaõnnestumise teate saamiseks.

Mudeli kiht:

  • See on andmekiht, mis koosneb süsteemi äriloogikast.
  • See koosneb kõigist rakenduse andmetest
  • See tähistab ka rakenduse olekut.
  • See koosneb klassidest, millel on ühendus andmebaasiga.
  • Kontroller ühendub mudeliga, tõmbab andmed ja saadab vaate kihile.
  • Mudel ühendub ka andmebaasiga ja salvestab andmed andmebaasiga, mis on sellega ühendatud.

Kuva kiht:

  • See on esitluskiht.
  • See koosneb HTML-st, JSP-st jne.
  • Tavaliselt esitab see rakenduse kasutajaliidese.
  • Seda kasutatakse kontrollerilt hangitavate andmete kuvamiseks, mis omakorda toovad andmeid mudeli kihtide klassidest.
  • See vaate kiht näitab rakenduse kasutajaliidese andmeid.

Kontrolleri kiht:

  • See toimib vaate ja mudeli liidesena.
  • See võtab vastu kõik päringud, mis tulevad vaatekihilt.
  • See võtab päringud vaatekihilt vastu, töötleb taotlusi ja teeb päringu jaoks vajaliku valideerimise.
  • Need päringud saadetakse edasi andmetöötluseks mudeli kihile ja kui päring on töödeldud, saadab see kontrollerile vajaliku teabe tagasi ja kuvatakse vastavalt vaates.

Diagramm on kujutatud allpool:

MVC eelised on:

  • Lihtne hooldada
  • Lihtne pikendada
  • Lihtne testida
  • Navigeerimise juhtimine on tsentraliseeritud

MVC arhitektuuri näide

Selles näites näitame, kuidas kasutada MVC arhitektuuri JSP-s.

  • Võtame näite vormist, millel on kaks muutujat "e-post" ja "parool", mis on meie vaate kiht.
  • Kui kasutaja sisestab e-posti aadressi ja parooli ning klõpsab nuppu Esita, edastatakse toiming mvc_servletis, kus edastatakse e-posti aadress ja parool.
  • See mvc_servlet on kontrollerikiht. Siin saadetakse taotluses mvc_servlet päring oamobjektile, mis toimib mudeli kihina.
  • E-posti aadressi ja parooli väärtused seatakse uba ja salvestatakse edasiseks otstarbeks.
  • Oast võetakse väärtus ja kuvatakse see vaate kihil.

Mvc_example.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> MVC Guru näide 
E-post:
Parool:

Koodi selgitus:

Kuva kiht:

Koodirida 10-15: siin võtame vormi, millel on kaks välja parameetritena "e-post" ja "parool" ja see taotlus tuleb edastada kontrollerile Mvc_servlet.java, mis edastatakse toiminguna. Meetod, mille kaudu see on läbitud, on POST-meetod.

Mvc_servlet.java

paketi 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;/ *** Servleti juurutusklass Mvc_servlet* /avalik klass Mvc_servlet laiendab HttpServlet {privaatne staatiline lõplik pikk serialVersionUID = 1L;/ *** @ vaata HttpServlet # HttpServlet ()* /avalik Mvc_servlet () {Super();// TODO Automaatselt loodud konstruktori tüvi}kaitstud void doPost (HttpServletRequest päring, HttpServletResponse vastus) viskab ServletException, IOException {// TODO Automaatselt loodud meetodi tüviString email = request.getParameter ("e-post");String parool = request.getParameter ("parool");TestBean testobj = uus TestBean ();testobj.setEmail (e-post);testobj.setPassword (parool);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd. edasi (taotlus, vastus);}}

Koodi selgitus:

Kontrolleri kiht

Koodirida 14: mvc_servlet laiendab HttpServleti.

Koodirida 26: Kuna kasutatud meetod on POST, tuleb päring servleti doPost-meetodisse, mis töötleb taotlusi ja salvestab oaobjekti testobj-na.

Koodirida 34: Taotluse objekti abil määrame atribuudi gurubean, millele on määratud testobj väärtus.

Koodirida 35: siin kasutame edasisõnumi edastamiseks aadressile mvc_success.jsp päringu dispetšeri objekti

TestBean.java

paketi demotest;import java.io.Serializable;avalik klass TestBean rakendab Serializable {avalik string getEmail () {e-posti tagastamine;}public void setEmail (stringi e-post) {see.post = e-post;}public String getPassword () {tagastage parool;}public void setPassword (stringi parool) {see.parool = parool;}privaatstringi e-post = "null";privaatstringi parool = "null";}

Koodi selgitus:

Mudeli kiht:

Koodirida 7–17: see sisaldab e-posti ja parooli hankijaid ja seadistajaid, mis kuuluvad Test Bean klassi

Koodirida 19-20: see määrab oaklassi liikmetele mõeldud e-posti aadressi ja stringitüübi parooli.

Mvc_success.jsp

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

Koodi selgitus:

Koodirida 12: saame atribuudi päringuobjekti abil, mis on määratud servleti doPost-meetodis.

Koodirida 13: printime tervitusõnumi ja e-posti aadressi, mis on oamobjekti salvestatud

Väljund:

Ülaltoodud koodi käivitamisel saate järgmise väljundi:

Kui klõpsate saidil mvc_example.jsp, saate vormi e-posti ja parooliga koos nupuga Esita.

Kui olete vormile sisestanud e-posti aadressi ja parooli, siis klõpsake nuppu Esita

Pärast klõpsamist nupul Esita kuvatakse väljund allpool

Väljund:

Kui sisestate ekraanile e-posti aadressi ja parooli ning klõpsate nupul Esita, siis salvestatakse üksikasjad TestBeani ja TestBeanist saadakse need järgmisele ekraanile, et edukat teadet saada.

Kokkuvõte:

Selles artiklis oleme õppinud tundma MVC ehk Model View Controller arhitektuuri.

JSP mängib andmete esitamise ja kontrolleri rolli. See on liides mudeli ja vaate vahel, samal ajal kui mudel ühendub nii kontrolleri kui ka andmebaasiga. Peamine äriloogika on olemas mudeli kihis.