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
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.