MVC in JSP (Architecnologia)
Che cos'è MVC?
MVC è un'architettura che separa la logica aziendale, la presentazione e i dati. In MVC,
- M sta per Modello
- V sta per Vista
- C sta per controllore.
MVC è un modo sistematico di utilizzare l'applicazione in cui il flusso inizia dal livello di visualizzazione, dove la richiesta viene sollevata ed elaborata nel livello del controller e inviata al livello del modello per inserire i dati e recuperare il messaggio di successo o fallimento. Il MVC Archiil diagramma della struttura è rappresentato di seguito:

Livello modello
- Questo è il livello dati che costituisce la logica aziendale del sistema.
- È costituito da tutti i dati dell'applicazione
- Rappresenta anche lo stato dell'applicazione.
- È costituito da classi che hanno la connessione a banca dati.
- Il controller si connette al modello, recupera i dati e li invia al livello di visualizzazione.
- Il modello si connette anche al database e memorizza i dati in un database ad esso collegato.
Visualizza livello
- Questo è un livello di presentazione.
- È costituito da HTML, JSP, ecc.
- Normalmente presenta l'interfaccia utente dell'applicazione.
- Viene utilizzato per visualizzare i dati recuperati dal controller che a sua volta recupera i dati dalle classi del livello del modello.
- Questo livello di visualizzazione mostra i dati sull'interfaccia utente dell'applicazione.
Livello di controllo
- Funziona come un'interfaccia tra Vista e Modello.
- Intercetta tutte le richieste che provengono dal livello di visualizzazione.
- Riceve le richieste dal livello di visualizzazione, le elabora ed esegue la convalida necessaria per la richiesta.
- Questa richiesta viene ulteriormente inviata al livello del modello per l'elaborazione dei dati e, una volta elaborata, la richiesta viene rinviata al responsabile del trattamento con le informazioni richieste e visualizzate di conseguenza dalla vista.
Vantaggi di MVC Architectura
I vantaggi di MVC sono:
- Facilità di manutenzione
- Facile da estendere
- Facile da testare
- Il controllo della navigazione è centralizzato
Esempio di progettazione di applicazioni JSP con MVC Architectura
In questo esempio mostreremo come utilizzare l'architettura MVC in JSP.
- Prendiamo come esempio un modulo con due variabili "email" e "password", che rappresenta il nostro livello di visualizzazione.
- Una volta che l'utente inserisce l'email e la password e clicca su Invia, l'azione viene passata in mvc_servlet, dove vengono passati l'email e la password.
- Questo mvc_servlet è il livello del controller. Qui in mvc_servlet la richiesta viene inviata all'oggetto bean che funge da livello del modello.
- I valori email e password vengono impostati nel bean e memorizzati per ulteriori scopi.
- Dal bean, il valore viene recuperato e mostrato nel livello di visualizzazione.
Mvc_esempio.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>
Spiegazione del codice:
Visualizza livello:
Riga di codice 10-15: Qui stiamo prendendo un modulo che ha due campi come parametro "email" e "password" e questa richiesta deve essere inoltrata a un controller Mvc_servlet.java, che viene passato in azione. Il metodo attraverso cui viene passato è il metodo POST.
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); } }
Spiegazione del codice:
Livello di controllo
Riga di codice 14:mvc_servlet sta estendendo HttpServlet.
Riga di codice 26: Poiché il metodo utilizzato è POST, la richiesta entra in un metodo doPost del servlet che elabora le richieste e le salva nell'oggetto bean come testobj.
Riga di codice 34: Utilizzando l'oggetto richiesta stiamo impostando l'attributo come gurubean a cui viene assegnato il valore di testobj.
Riga di codice 35: Qui stiamo utilizzando l'oggetto dispatcher della richiesta per passare il messaggio di successo a 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"; }
Spiegazione del codice:
Strato del modello:
Riga di codice 7-17: Contiene i getter e i setter di email e password che sono membri della classe Test Bean
Riga di codice 19-20: Definisce i membri email e password di tipo stringa nella classe bean.
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>
Spiegazione del codice:
Riga di codice 12: stiamo ottenendo l'attributo utilizzando l'oggetto richiesta che è stato impostato nel metodo doPost del servlet.
Riga di codice 13: Stiamo stampando il messaggio di benvenuto e l'ID e-mail che sono stati salvati nell'oggetto bean
Produzione:
Quando esegui il codice sopra, ottieni il seguente output:
Cliccando su mvc_example.jsp si ottiene il modulo con l'email e la password con il pulsante Invia.
Dopo aver inserito l'email e la password nel modulo, fare clic su Invia
Dopo aver fatto clic su Invia, l'output viene mostrato come di seguito
Produzione:
Quando inserisci e-mail e password nella schermata e clicchi su Invia, i dettagli vengono salvati in TestBean e da TestBean vengono recuperati nella schermata successiva per ottenere il messaggio di successo.
Sommario
In questo articolo abbiamo imparato a conoscere l'architettura MVC, ovvero Model View Controller.
JSP svolge il ruolo di presentatore dei dati e di responsabile del trattamento. È un'interfaccia tra modello e vista mentre il modello si connette sia al controller che al database. La logica aziendale principale è presente nel livello del modello.