MVC-arkkitehtuuri JSP: ssä esimerkin avulla

Sisällysluettelo:

Anonim

Mikä on MVC?

MVC on arkkitehtuuri, joka erottaa liiketoimintalogiikan, esityksen ja tiedot. MVC: ssä

  • M tarkoittaa mallia
  • V tarkoittaa View
  • C tarkoittaa ohjainta.

MVC on systemaattinen tapa käyttää sovellusta, jossa virtaus alkaa näkymäkerroksesta, jossa pyyntö nostetaan ja käsitellään ohjainkerroksessa ja lähetetään mallikerrokseen tietojen lisäämiseksi ja onnistumis- tai epäonnistumisviestin palauttamiseksi.

Mallikerros:

  • Tämä on tietokerros, joka koostuu järjestelmän liiketoimintalogiikasta.
  • Se koostuu kaikista sovelluksen tiedoista
  • Se edustaa myös sovelluksen tilaa.
  • Se koostuu luokista, joilla on yhteys tietokantaan.
  • Ohjain muodostaa yhteyden malliin ja hakee tiedot ja lähettää näkymäkerrokseen.
  • Malli muodostaa yhteyden myös tietokantaan ja tallentaa tiedot siihen yhdistettyyn tietokantaan.

Näytä taso:

  • Tämä on esityskerros.
  • Se koostuu HTML: stä, JSP: stä jne.
  • Normaalisti se näyttää sovelluksen käyttöliittymän.
  • Sitä käytetään ohjaimesta haettavan datan näyttämiseen, joka puolestaan ​​hakee tietoja mallikerrosluokista.
  • Tämä näkymäkerros näyttää sovelluksen käyttöliittymän tiedot.

Ohjaimen taso:

  • Se toimii käyttöliittymänääkymän ja mallin välillä.
  • Se sieppaa kaikki näkymäkerrokselta tulevat pyynnöt.
  • Se vastaanottaa pyynnöt näkymäkerrokselta, käsittelee pyynnöt ja suorittaa pyynnölle tarvittavan vahvistuksen.
  • Nämä pyynnöt lähetetään edelleen mallikerrokselle tietojen käsittelyä varten, ja kun pyyntö on käsitelty, se lähettää takaisin ohjaimelle vaaditut tiedot ja näkymän mukaisesti.

Kaavio on esitetty alla:

MVC: n edut ovat:

  • Helppo huoltaa
  • Helppo pidentää
  • Helppo testata
  • Navigointiohjaus on keskitetty

Esimerkki MVC-arkkitehtuurista

Tässä esimerkissä aiomme näyttää, kuinka MVC-arkkitehtuuria käytetään JSP: ssä.

  • Otamme esimerkin lomakkeesta, jossa on kaksi muuttujaa "sähköposti" ja "salasana", jotka ovat näkymäkerroksemme.
  • Kun käyttäjä syöttää sähköpostin, salasanan ja napsauttaa Lähetä, toiminto välitetään mvc_servlet-tiedostoon, jossa sähköposti ja salasana välitetään.
  • Tämä mvc_servlet on ohjainkerros. Tässä mvc_servletissä pyyntö lähetetään papuobjektille, joka toimii mallikerroksena.
  • Sähköposti- ja salasana-arvot asetetaan papuun ja tallennetaan myöhempää käyttöä varten.
  • Papu, arvo haetaan ja näytetään näkymäkerroksessa.

Mvc_example.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> MVC Guru -esimerkki 
Sähköposti:
Salasana:

Koodin selitys:

Näytä taso:

Koodirivi 10-15: Tässä valitaan lomake, jolla on kaksi kenttää parametrina "sähköposti" ja "salasana", ja tämä pyyntö on välitettävä ohjaimelle Mvc_servlet.java, joka välitetään toiminnassa. on läpäissyt, on POST-menetelmä.

Mvc_servlet.java

paketin demotest;tuo java.io.IOException;tuo javax.servlet.RequestDispatcher;tuo javax.servlet.ServletException;tuo javax.servlet.http.HttpServlet;tuo javax.servlet.http.HttpServletRequest;tuo javax.servlet.http.HttpServletResponse;/ *** Servlet-sovellusluokka Mvc_servlet* /julkinen luokka Mvc_servlet laajentaa HttpServlet {yksityinen staattinen lopullinen pitkä serialVersionUID = 1L;/ *** @ katso HttpServlet # HttpServlet ()* /julkinen Mvc_servlet () {super ();// TODO Automaattisesti luotu rakentajan tynkä}suojattu void doPost (HttpServletRequest-pyyntö, HttpServletResponse vastaus) heittää ServletException, IOException {// TODO Automaattisesti luotu menetelmän tynkäMerkkijono sähköposti = request.getParameter ("sähköposti");Merkkijonon salasana = request.getParameter ("salasana");TestBean testobj = uusi TestBean ();testobj.setEmail (sähköposti);testobj.setPassword (salasana);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd. eteenpäin (pyyntö, vastaus);}}

Koodin selitys:

Ohjainkerros

Koodirivi 14: mvc_servlet laajentaa HttpServlet-tiedostoa.

Koodirivi 26: Koska käytetty menetelmä on POST, pyyntö tulee näin ollen servletin doPost-menetelmään, joka käsittelee pyynnöt ja tallentaa papuobjektiin testobj-muodossa.

Koodirivi 34: Pyyntöobjektin avulla asetamme attribuutin gurubeaniksi, jolle on annettu testobj-arvo.

Koodirivi 35: Tässä käytämme pyynnön välittäjäobjektia välittämään menestysviestin osoitteeseen mvc_success.jsp

TestBean.java

paketin demotest;tuo java.io.Serializable;julkinen luokka TestBean toteuttaa Serializable {julkinen merkkijono getEmail () {palauta sähköposti;}public void setEmail (merkkijono sähköposti) {this.email = sähköposti;}public String getPassword () {palauta salasana;}public void setPassword (merkkijonon salasana) {this.password = salasana;}yksityinen merkkijono sähköposti = "null";yksityisen merkkijonon salasana = "null";}

Koodin selitys:

Mallikerros:

Koodirivi 7-17: Se sisältää sähköpostin ja salasanan hakijat ja asettajat, jotka ovat Test Bean -luokan jäseniä

Koodirivi 19-20: Se määrittää jäsenten sähköpostiosoitteen ja merkkijonotyypin salasanan papuluokassa.

Mvc_success.jsp

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

Koodin selitys:

Koodirivi 12: haemme attribuutin pyynnön objektilla, joka on asetettu servletin doPost-menetelmässä.

Koodirivi 13: Tulostamme tervetuloviestin ja sähköpostitunnuksen, jotka on tallennettu papuobjektiin

Tuotos:

Kun suoritat yllä olevan koodin, saat seuraavan tuloksen:

Kun napsautat mvc_example.jsp, saat lomakkeen, jossa on sähköposti ja salasana Lähetä-painikkeella.

Kun olet kirjoittanut sähköpostiosoitteen ja salasanan lomakkeeseen ja napsauttanut Lähetä

Kun olet napsauttanut Lähetä, tulos näkyy alla

Tuotos:

Kun syötät sähköpostiosoitteen ja salasanan näyttöön ja napsautat Lähetä-painiketta, tiedot tallennetaan TestBeaniin ja TestBeanista ne haetaan seuraavalle näytölle menestysviestin saamiseksi.

Yhteenveto:

Tässä artikkelissa olemme oppineet MVC eli Model View Controller -arkkitehtuurista.

JSP on tietojen esittäjän ja rekisterinpitäjän rooli. Se on rajapinta mallin ja näkymän välillä, kun taas malli yhdistää sekä ohjaimen että tietokannan. Tärkein liiketoimintalogiikka on mallikerroksessa.