MVC-arkitektur i JSP med eksempel

Indholdsfortegnelse:

Anonim

Hvad er MVC?

MVC er en arkitektur, der adskiller forretningslogik, præsentation og data. I MVC,

  • M står for Model
  • V står for View
  • C står for controller.

MVC er en systematisk måde at bruge applikationen på, hvor flowet starter fra visningslaget, hvor anmodningen hæves og behandles i controller-laget og sendes til modelaget for at indsætte data og få tilbage meddelelsen om succes eller fiasko.

Model lag:

  • Dette er datalaget, der består af systemets forretningslogik.
  • Den består af alle data i applikationen
  • Det repræsenterer også applikationens tilstand.
  • Den består af klasser, der har forbindelse til databasen.
  • Controlleren forbinder med modellen og henter dataene og sender til visningslaget.
  • Modellen forbinder også med databasen og gemmer dataene i en database, der er forbundet til den.

Vis lag:

  • Dette er et præsentationslag.
  • Den består af HTML, JSP osv. Ind i den.
  • Det viser normalt applikationsgrænsefladen.
  • Det bruges til at vise de data, der hentes fra controlleren, som igen henter data fra modelagsklasser.
  • Dette visningslag viser dataene om UI i applikationen.

Controller-lag:

  • Det fungerer som en grænseflade mellem visning og model.
  • Det opfanger alle de anmodninger, der kommer fra visningslaget.
  • Den modtager anmodningerne fra visningslaget og behandler anmodningerne og udfører den nødvendige validering for anmodningen.
  • Denne anmodning sendes yderligere til modelaget til databehandling, og når anmodningen er behandlet, sender den tilbage til controlleren med krævet information og vises i overensstemmelse hermed af visningen.

Diagrammet er vist nedenfor:

Fordelene ved MVC er:

  • Let at vedligeholde
  • Let at udvide
  • Let at teste
  • Navigationskontrol er centraliseret

Eksempel på MVC-arkitektur

I dette eksempel skal vi vise, hvordan man bruger MVC-arkitektur i JSP.

  • Vi tager eksemplet på en formular med to variabler "e-mail" og "adgangskode", som er vores visningslag.
  • Når brugeren indtaster e-mail og adgangskode og klikker på send, overføres handlingen i mvc_servlet, hvor e-mail og adgangskode sendes.
  • Denne mvc_servlet er controller-lag. Her i mvc_servlet sendes anmodningen til bønneobjektet, der fungerer som modelag.
  • E-mail- og adgangskodeværdierne indstilles i bønnen og gemmes til yderligere formål.
  • Fra bønnen hentes værdien og vises i visningslaget.

Mvc_eksempel.jsp

<% @ side sprog = "java" contentType = "tekst / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> MVC Guru-eksempel 
E-mail:
Adgangskode:

Forklaring af koden:

Vis lag:

Kodelinje 10-15: Her tager vi en formular, der har to felter som parameter "e-mail" og "adgangskode", og denne anmodning skal videresendes til en controller Mvc_servlet.java, som sendes i aktion. Metoden, gennem hvilken den er bestået er POST-metoden.

Mvc_servlet.java

demotest pakke;importere java.io.IOException;importere javax.servlet.RequestDispatcher;importere javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/ *** Servlet implementeringsklasse Mvc_servlet* /offentlig klasse Mvc_servlet udvider HttpServlet {privat statisk endelig lang serialVersionUID = 1L;/ *** @see HttpServlet # HttpServlet ()* /offentlig Mvc_servlet () {super();// TODO Auto-genereret konstruktørstub}beskyttet ugyldigt doPost (HttpServletRequest anmodning, HttpServletResponse svar) kaster ServletException, IOException {// TODO Auto-genereret metodestubStreng-e-mail = request.getParameter ("e-mail");Strengadgangskode = request.getParameter ("adgangskode");TestBean testobj = ny TestBean ();testobj.setEmail (e-mail);testobj.setPassword (adgangskode);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd.forward (anmodning, svar);}}

Forklaring af koden:

Controller lag

Kodelinje 14: mvc_servlet udvider HttpServlet.

Kodelinje 26: Da den anvendte metode er POST, kommer anmodning derfor ind i en doPost-metode for servleten, der behandler anmodningerne og gemmer i bønneobjektet som testobj.

Kodelinje 34: Ved hjælp af anmodningsobjekt indstiller vi attributten som gurubean, som tildeles værdien af ​​testobj.

Kodelinje 35: Her bruger vi anmodningsforsendelsesobjekt til at sende succesmeddelelsen til mvc_success.jsp

TestBean.java

demotest pakke;import java.io.Serializable;offentlig klasse TestBean implementerer Serializable {offentlig streng getEmail () {returnere e-mail;}public void setEmail (streng e-mail) {this.email = e-mail;}offentlig streng getPassword () {returnere adgangskode}public void setPassword (strengadgangskode) {this.password = adgangskode;}privat streng e-mail = "null";privat strengadgangskode = "null";}

Forklaring af koden:

Model lag:

Kodelinje 7-17: Den indeholder getters og settere af e-mail og adgangskode, som er medlemmer af Test Bean-klassen

Kodelinje 19-20: Den definerer medlemmets e-mail og adgangskode af strengtype i bønneklassen.

Mvc_success.jsp

<% @ side sprog = "java" contentType = "tekst / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ side import = "demotest.TestBean"%> Guru Succes <%TestBean testguru = (TestBean) request.getAttribute ("gurubean");out.print ("Velkommen" + testguru.getEmail ());%>

Forklaring af koden:

Kodelinje 12: vi får attributten ved hjælp af anmodningsobjekt, der er indstillet i doPost-metoden i servlet.

Kodelinje 13: Vi udskriver velkomstbeskeden og e-mail-id'et, der er gemt i bønneobjektet

Produktion:

Når du udfører ovenstående kode, får du følgende output:

Når du klikker på mvc_example.jsp, får du formularen med e-mail og adgangskode med knappen Send.

Når du indtaster e-mail og adgangskode til formularen og derefter klikker på send

Efter at have klikket på send, vises output som nedenfor

Produktion:

Når du indtaster e-mail og adgangskode på skærmen og klikker på send derefter, gemmes detaljerne i TestBean, og fra TestBean hentes de på næste skærm for at få succesmeddelelsen.

Resumé:

I denne artikel har vi lært om MVC, dvs. Model View Controller-arkitektur.

JSP spiller rollen som præsentation af data og controller. Det er en grænseflade mellem model og visning, mens modellen forbinder både controlleren og databasen. Den primære forretningslogik er til stede i modelaget.