MVC i JSP (Architecture)

Vad är MVC?

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

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

MVC är ett systematiskt sätt att använda applikationen där flödet startar från vylagret, där förfrågan höjs och bearbetas i kontrolllager och skickas till modelllager för att infoga data och få tillbaka meddelandet om framgång eller misslyckande. MVC ArchiTecture diagram representeras nedan:

MVC Architecture
MVC ArchiTecture Diagram

Modelllager

  • Detta är dataskiktet som består av systemets affärslogik.
  • Den består av all data i applikationen
  • Den representerar också applikationens tillstånd.
  • Den består av klasser som har koppling till databas.
  • Styrenheten ansluter till modell och hämtar data och skickar till vylagret.
  • Modellen ansluter även till databasen och lagrar data i en databas som är kopplad till den.

Visa lager

  • Detta är ett presentationslager.
  • Den består av HTML, JSP, etc. in i den.
  • Den presenterar 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.
  • Det här vyskiktet visar data om applikationens användargränssnitt.

Kontrolllager

  • Det fungerar som ett gränssnitt mellan View och Model.
  • Den fångar upp alla förfrågningar som kommer från vylagret.
  • Den tar emot förfrågningarna från vylagret och bearbetar förfrågningarna och gör den nödvändiga valideringen för begäran.
  • Dessa förfrågningar skickas vidare till modellskiktet för databearbetning, och när begäran har behandlats, skickas den tillbaka till styrenheten med nödvändig information och visas i enlighet med detta av vyn.

Fördelar med MVC Architecture

Fördelarna med MVC är:

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

Exempel på JSP Application Design med MVC Architecture

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

  • Vi tar exemplet med ett formulär med två variabler "e-post" och "lösenord" som är vårt vylager.
  • 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.
  • Denna mvc_servlet är kontrolllager. 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 vylagret.

Mvc_example.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>MVC Guru Example</title>
</head>
<body>
<form action="Mvc_servlet" method="POST">
Email: <input type="text" name="email">
<br />
Password: <input type="text" name="password" />
<input type="submit" value="Submit" />
</form>
</body>
</html>

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 kontroller Mvc_servlet.java, som skickas i aktion. Metoden genom vilken den skickas är POST-metoden.

Mvc_servlet.java

package demotest;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Mvc_servlet
 */
public class Mvc_servlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Mvc_servlet() {
        super();
        // TODO Auto-generated constructor stub
    }


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String email=request.getParameter("email");  
        String password=request.getParameter("password");
        
        TestBean testobj = new TestBean();
        testobj.setEmail(email);
        testobj.setPassword(password);
        request.setAttribute("gurubean",testobj);
        RequestDispatcher rd=request.getRequestDispatcher("mvc_success.jsp");  
        rd.forward(request, response); 
	}

}

Förklaring av koden:

Kontrolllager

Kodrad 14:mvc_servlet utökar HttpServlet.

Kodrad 26: Eftersom metoden som används är POST kommer begäran in i en doPost-metod för servleten som bearbetar förfrågningarna och sparar i bönobjektet som testobj.

Kodrad 34: Genom att använda request object ställer vi in ​​attributet som gurubean som tilldelas värdet av testobj.

Kodrad 35: Här använder vi request dispatcher object för att skicka framgångsmeddelandet till mvc_success.jsp

TestBean.java

package demotest;

import java.io.Serializable;

public class TestBean implements Serializable{
	
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	private String email="null";
	private String password="null";


}

Förklaring av koden:

Modelllager:

Kodrad 7-17: Den innehåller getters och sättare av 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önklassen.

Mvc_success.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@page import="demotest.TestBean"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Success</title>
</head>
<body>
<%  
TestBean testguru=(TestBean)request.getAttribute("gurubean");  
out.print("Welcome, "+testguru.getEmail());  
%>
</body>
</html>

Förklaring av koden:

Kodrad 12: vi får attributet med request-objektet som har ställts in i doPost-metoden för servleten.

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

Produktion:

När du kör ovanstående kod får du följande utdata:

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

När du har angett e-postadress och lösenord till formuläret och klicka sedan på skicka

JSP Application Design

Efter att ha klickat på skicka visas resultatet enligt nedan

JSP Application Design

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 registeransvarig. Det är ett gränssnitt mellan modell och vy medan modellen ansluter både till styrenheten och databasen. Huvudsaklig affärslogik finns i modellskiktet.