MVC-arkitektur i JSP med exempel

Vad är MVC?

MVC är en arkitektur som skiljer affärslogik, presentation och data. I MVC,

  • M står för Model
  • V står för View
  • C står för styrenhet.

MVC är ett systematiskt sätt att använda applikationen där flödet börjar från vyskiktet, där begäran höjs och bearbetas i kontrollerskiktet och skickas till modelllagret för att infoga data och få tillbaka meddelandet om framgång eller misslyckande.

Model Layer:

  • Detta är datalagret som består av systemets affärslogik.
  • Den består av alla data i applikationen
  • Det representerar också applikationens tillstånd.
  • Den består av klasser som har anslutning till databasen.
  • Styrenheten ansluter till modell och hämtar data och skickar till visningsskiktet.
  • Modellen ansluter också till databasen och lagrar data i en databas som är ansluten till den.

Visa lager:

  • Detta är ett presentationslager.
  • Den består av HTML, JSP, etc. i den.
  • Det visar normalt applikationens användargränssnitt.
  • Den används för att visa data som hämtas från styrenheten som i sin tur hämtar data från modelllagerklasser.
  • Detta visningsskikt visar data om applikationens användargränssnitt.

Controller Layer:

  • Det fungerar som ett gränssnitt mellan View och Model.
  • Den avlyssnar alla förfrågningar som kommer från vyskiktet.
  • Den tar emot förfrågningarna från vyskiktet och bearbetar förfrågningarna och gör nödvändig validering för begäran.
  • Denna begäran skickas vidare till modelllagret för databehandling, och när begäran har behandlats skickas den tillbaka till styrenheten med nödvändig information och visas i enlighet med vyn.

Diagrammet visas nedan:

Fördelarna med MVC är:

  • Lätt att underhålla
  • Lätt att förlänga
  • Lätt att testa
  • Navigationskontroll är centraliserad

Exempel på MVC-arkitektur

I det här exemplet ska vi visa hur man använder MVC-arkitektur i JSP.

  • Vi tar exemplet på ett formulär med två variabler "e-post" och "lösenord" som är vårt synlager.
  • När användaren anger e-post och lösenord och klickar på skicka skickas åtgärden i mvc_servlet där e-post och lösenord skickas.
  • Den här mvc_servlet är kontrollerskikt. Här i mvc_servlet skickas begäran till bönobjektet som fungerar som modelllager.
  • Värdena för e-post och lösenord ställs in i bönan och lagras för ytterligare ändamål.
  • Från bönan hämtas värdet och visas i vyskiktet.

Mvc_exempel.jsp

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> MVC Guru Exempel 
E-post:
Lösenord:

Förklaring av koden:

Visa lager:

Kodrad 10-15: Här tar vi ett formulär som har två fält som parameter "e-post" och "lösenord" och denna begäran måste vidarebefordras till en styrenhet Mvc_servlet.java, som skickas i aktion. Metoden genom vilken den passeras är POST-metoden.

Mvc_servlet.java

paket demotest;importera java.io.IOException;importera javax.servlet.RequestDispatcher;importera javax.servlet.ServletException;importera javax.servlet.http.HttpServlet;importera javax.servlet.http.HttpServletRequest;importera javax.servlet.http.HttpServletResponse;/ *** Servlet implementeringsklass Mvc_servlet* /offentlig klass Mvc_servlet utökar HttpServlet {privat statisk slutlig lång serieVersionUID = 1L;/ *** @see HttpServlet # HttpServlet ()* /offentliga Mvc_servlet () {super();// TODO Auto-genererad konstruktörstub}skyddad ogiltig doPost (HttpServletRequest-begäran, HttpServletResponse-svar) kastar ServletException, IOException {// TODO Auto-genererad metodstubSträng e-post = request.getParameter ("e-post");Stränglösenord = request.getParameter ("lösenord");TestBean testobj = ny TestBean ();testobj.setEmail (e-post);testobj.setPassword (lösenord);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd.forward (begäran, svar);}}

Förklaring av koden:

Kontrolllager

Kodrad 14: mvc_servlet utökar HttpServlet.

Kodrad 26: Eftersom metoden som används är POST kommer därför begäran till en doPost-metod för servlet som behandlar förfrågningarna och sparar i bönobjektet som testobj.

Kodrad 34: Genom att använda förfrågningsobjekt ställer vi in ​​attributet som gurubean vilket tilldelas värdet på testobj.

Kodrad 35: Här använder vi förfrågningsavsändarobjekt för att skicka framgångsmeddelandet till mvc_success.jsp

TestBean.java

paket demotest;importera java.io.Serializable;offentlig klass TestBean implementerar Serializable {offentlig sträng getEmail () {skicka e-post}public void setEmail (String email) {this.email = e-post;}offentlig sträng getPassword () {returnera lösenord;}public void setPassword (Stränglösenord) {this.password = lösenord;}privat sträng e-post = "null";privat stränglösenord = "null";}

Förklaring av koden:

Model Layer:

Kodrad 7-17: Den innehåller getters och setter för e-post och lösenord som är medlemmar i Test Bean-klassen

Kodrad 19-20: Den definierar medlemmarnas e-postadress och lösenord av strängtyp i bönaklassen.

Mvc_success.jsp

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ page import = "demotest.TestBean"%> Guruframgång <%TestBean testguru = (TestBean) request.getAttribute ("gurubean");out.print ("Välkommen" + testguru.getEmail ());%>

Förklaring av koden:

Kodrad 12: vi får attributet med hjälp av förfrågningsobjekt som har ställts in i doPost-metoden för servlet.

Kodrad 13: Vi skriver ut välkomstmeddelandet och e-post-ID som har sparats i bönobjektet

Produktion:

När du kör koden ovan får du följande utdata:

När du klickar på mvc_example.jsp får du formuläret med e-post och lösenord med knappen Skicka.

När du anger e-post och lösenord till formuläret och sedan klickar på skicka

Efter att ha klickat på skicka visas utdata som nedan

Produktion:

När du anger e-post och lösenord på skärmen och klickar på skicka sedan sparas detaljerna i TestBean och från TestBean hämtas de på nästa skärm för att få framgångsmeddelandet.

Sammanfattning:

I den här artikeln har vi lärt oss om MVC, dvs Model View Controller-arkitekturen.

JSP spelar rollen som presentation av data och controller. Det är ett gränssnitt mellan modell och vy medan modellen ansluter både till styrenheten och databasen. Huvudsaklig affärslogik finns i modellskiktet.

Intressanta artiklar...