MVC architektūra JSP pavyzdžiu

Turinys:

Anonim

Kas yra MVC?

MVC yra architektūra, atskirianti verslo logiką, pateikimą ir duomenis. MVC,

  • M reiškia modelį
  • V reiškia „View“
  • C reiškia valdiklį.

MVC yra sisteminis būdas naudoti programą, kai srautas prasideda nuo rodinio sluoksnio, kur užklausa yra keliama ir apdorojama valdiklio sluoksnyje ir siunčiama modelio sluoksniui, norint įterpti duomenis ir gauti sėkmės ar nesėkmės pranešimą.

Modelio sluoksnis:

  • Tai duomenų sluoksnis, kurį sudaro sistemos verslo logika.
  • Ją sudaro visi programos duomenys
  • Tai taip pat atspindi programos būseną.
  • Jį sudaro klasės, turinčios ryšį su duomenų baze.
  • Valdiklis jungiasi su modeliu, atneša duomenis ir siunčia į rodinio sluoksnį.
  • Modelis taip pat jungiasi su duomenų baze ir saugo duomenis į prie jo prijungtą duomenų bazę.

Peržiūrėti sluoksnį:

  • Tai yra pateikimo sluoksnis.
  • Jį sudaro HTML, JSP ir kt.
  • Paprastai jis pateikia programos vartotojo sąsają.
  • Jis naudojamas rodyti duomenis, kurie gaunami iš valdiklio, kuris savo ruožtu gauna duomenis iš modelio sluoksnio klasių.
  • Šis rodinio sluoksnis rodo programos vartotojo sąsajos duomenis.

Valdiklio sluoksnis:

  • Tai veikia kaip „View“ ir „Model“ sąsaja.
  • Jis perima visas užklausas, gaunamas iš rodinio sluoksnio.
  • Jis gauna užklausas iš rodinio sluoksnio, apdoroja užklausas ir atlieka reikiamą užklausos patvirtinimą.
  • Šios užklausos toliau siunčiamos duomenų apdorojimo modelio sluoksniui, o apdorojus užklausą, ji išsiunčia atgal valdikliui su reikalinga informacija ir atitinkamai rodoma rodinyje.

Diagrama pavaizduota žemiau:

MVC pranašumai yra šie:

  • Lengva prižiūrėti
  • Lengva pratęsti
  • Lengva išbandyti
  • Navigacijos valdymas yra centralizuotas

MVC architektūros pavyzdys

Šiame pavyzdyje mes parodysime, kaip naudoti MVC architektūrą JSP.

  • Mes imamės formos su dviem kintamaisiais „el. Paštas“ ir „slaptažodis“, kurie yra mūsų rodinio sluoksnis, pavyzdžio.
  • Kai vartotojas įveda el. Pašto adresą, slaptažodį ir spustelės pateikti, veiksmas bus perduotas mvc_servlet, kur perduodami el. Paštas ir slaptažodis.
  • Šis „mvc_servlet“ yra valdiklio sluoksnis. Čia „mvc_servlet“ užklausa siunčiama pupelių objektui, kuris veikia kaip modelio sluoksnis.
  • El. Pašto ir slaptažodžio vertės nustatomos į pupelę ir saugomos tolesniam tikslui.
  • Iš pupelės vertė gaunama ir rodoma rodinio sluoksnyje.

„Mvc_example.jsp“

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> MVC „Guru“ pavyzdys 
El. Paštas:
Slaptažodis:

Kodo paaiškinimas:

Peržiūrėti sluoksnį:

Kodo eilutė 10-15: Čia mes naudojame formą, kurioje yra du laukai kaip parametras „el. Paštas“ ir „slaptažodis“, ir šią užklausą reikia persiųsti valdikliui „Mvc_servlet.java“, kuris perduodamas veikiant. Metodas, per kurį jis naudojamas yra POST metodas.

Mvc_servlet.java

paketo demotest;importuoti java.io.IOException;importuoti javax.servlet.RequestDispatcher;importuoti javax.servlet.ServletException;importuoti javax.servlet.http.HttpServlet;importuoti javax.servlet.http.HttpServletRequest;importuoti javax.servlet.http.HttpServletResponse;/ *** „Servlet“ diegimo klasė „Mvc_servlet“* /visuomenės klasė „Mvc_servlet“ pratęsia „HttpServlet“ {privatus statinis galutinis ilgas serialVersionUID = 1L;/ *** @ žr. HttpServlet # HttpServlet ()* /public Mvc_servlet () {super ();// TODO automatiškai sukurtas konstruktoriaus šakas}apsaugotas negaliojantis „doPost“ („HttpServletRequest“ prašymas, „HttpServletResponse“ atsakymas) išmeta „ServletException“, „IOException“ {// TODO Automatiškai sugeneruotas metodasString email = request.getParameter („el. Paštas“);Eilutės slaptažodis = request.getParameter ("slaptažodis");TestBean testobj = naujas TestBean ();testobj.setEmail (el. paštas);testobj.setPassword (slaptažodis);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd. perduoti (prašymas, atsakymas);}}

Kodo paaiškinimas:

Valdiklio sluoksnis

14 kodo eilutė: „ mvc_servlet“ tęsiasi „HttpServlet“.

Kodo eilutė 26: Kadangi naudojamas metodas yra POST, užklausa patenka į servleto doPost metodą, kuris apdoroja užklausas ir įrašo į pupelių objektą kaip testobj.

34 kodo eilutė: Naudodami užklausos objektą, atributą nustatome kaip gurubean, kuriam priskiriama testobj reikšmė.

Kodo eilutė 35: Čia mes naudojame užklausos dispečerio objektą, norėdami perduoti sėkmės pranešimą mvc_success.jsp

TestBean.java

paketo demotest;importuoti java.io.Serializable;viešoji klasė „TestBean“ įgyvendina „Serializable“ {viešoji eilutė getEmail () {grąžinti el. laišką;}public void setEmail (eilutės el. paštas) {this.elail = el. paštas;}viešoji eilutė getPassword () {grąžinti slaptažodį;}public void setPassword (eilutės slaptažodis) {this.password = slaptažodis;}asmeninės eilutės el. paštas = "null";privačios eilutės slaptažodis = "null";}

Kodo paaiškinimas:

Modelio sluoksnis:

Kodo eilutė 7–17: Joje yra el. Pašto ir slaptažodžių, kurie yra „Test Bean“ klasės nariai, surinkėjai ir nustatytojai

Kodo eilutė 19-20: ji apibrėžia pupelių klasės narių el. Pašto adresą ir eilutės tipo slaptažodį.

„Mvc_success.jsp“

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ page import = "demotest.TestBean"%> „Guru“ sėkmė <%TestBean testguru = (TestBean) request.getAttribute ("gurubean");out.print ("Sveiki atvykę" + testguru.getEmail ());%>

Kodo paaiškinimas:

Kodo 12 eilutė: atributą gauname naudodami užklausos objektą, kuris nustatytas servleto doPost metodu.

Kodo eilutė 13: spausdiname pasveikinimo pranešimą ir el. Pašto adresą, kurie buvo išsaugoti pupelių objekte

Išvestis:

Vykdydami pirmiau nurodytą kodą gausite šį išvestį:

Kai spustelėsite mvc_example.jsp, gausite formą su el. Pašto adresu ir slaptažodžiu su pateikimo mygtuku.

Įvedę el. Pašto adresą ir slaptažodį į formą, tada spustelėkite pateikti

Spustelėjus pateikti, išvestis rodoma taip, kaip nurodyta toliau

Išvestis:

Įvedę el. Pašto adresą ir slaptažodį ekrane ir spustelėdami „Pateikti“, išsami informacija išsaugoma „TestBean“, o iš „TestBean“ jie gaunami kitame ekrane, kad gautumėte sėkmės pranešimą.

Santrauka:

Šiame straipsnyje mes sužinojome apie MVC, ty „Model View Controller“ architektūrą.

JSP atlieka duomenų pateikimo ir valdytojo vaidmenį. Tai sąsaja tarp modelio ir vaizdo, o modelis jungiasi tiek su valdikliu, tiek su duomenų baze. Pagrindinė verslo logika yra modelio sluoksnyje.