Arquitectura MVC en JSP con ejemplo

¿Qué es MVC?

MVC es una arquitectura que separa la lógica empresarial, la presentación y los datos. En MVC,

  • M significa Modelo
  • V significa Ver
  • C significa controlador.

MVC es una forma sistemática de usar la aplicación donde el flujo comienza desde la capa de vista, donde la solicitud se genera y procesa en la capa del controlador y se envía a la capa del modelo para insertar datos y recuperar el mensaje de éxito o falla.

Capa de modelo:

  • Esta es la capa de datos que consiste en la lógica empresarial del sistema.
  • Consta de todos los datos de la aplicación
  • También representa el estado de la aplicación.
  • Consiste en clases que tienen conexión a la base de datos.
  • El controlador se conecta con el modelo, obtiene los datos y los envía a la capa de vista.
  • El modelo también se conecta con la base de datos y almacena los datos en una base de datos que está conectada a ella.

Ver capa:

  • Esta es una capa de presentación.
  • Consiste en HTML, JSP, etc.
  • Normalmente presenta la interfaz de usuario de la aplicación.
  • Se utiliza para mostrar los datos que se obtienen del controlador que, a su vez, se obtienen datos de las clases de capa del modelo.
  • Esta capa de vista muestra los datos en la interfaz de usuario de la aplicación.

Capa de controlador:

  • Actúa como una interfaz entre Vista y Modelo.
  • Intercepta todas las solicitudes que provienen de la capa de vista.
  • Recibe las solicitudes de la capa de vista y procesa las solicitudes y realiza la validación necesaria para la solicitud.
  • Esta solicitud se envía además a la capa de modelo para el procesamiento de datos, y una vez que se procesa la solicitud, se envía de vuelta al controlador con la información requerida y se muestra en consecuencia en la vista.

El diagrama se representa a continuación:

Las ventajas de MVC son:

  • Facil de mantener
  • Fácil de extender
  • Fácil de probar
  • El control de navegación está centralizado

Ejemplo de arquitectura MVC

En este ejemplo, mostraremos cómo usar la arquitectura MVC en JSP.

  • Estamos tomando el ejemplo de un formulario con dos variables "correo electrónico" y "contraseña", que es nuestra capa de vista.
  • Una vez que el usuario ingresa el correo electrónico y la contraseña y hace clic en enviar, la acción se pasa en mvc_servlet donde se pasan el correo electrónico y la contraseña.
  • Este mvc_servlet es la capa del controlador. Aquí, en mvc_servlet, la solicitud se envía al objeto bean que actúa como capa de modelo.
  • Los valores de correo electrónico y contraseña se establecen en el bean y se almacenan para otros fines.
  • Desde el bean, el valor se obtiene y se muestra en la capa de vista.

Mvc_example.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Ejemplo de MVC Guru 
Correo electrónico:
Contraseña:

Explicación del código:

Ver capa:

Línea de código 10-15: Aquí estamos tomando un formulario que tiene dos campos como parámetro "correo electrónico" y "contraseña" y esta solicitud debe reenviarse a un controlador Mvc_servlet.java, que se pasa en acción. se pasa es el método POST.

Mvc_servlet.java

paquete 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;/ *** Clase de implementación de servlet Mvc_servlet* /public class Mvc_servlet extiende HttpServlet {private static final long serialVersionUID = 1L;/ *** @ver HttpServlet # HttpServlet ()* /public Mvc_servlet () {súper();// TODO stub de constructor generado automáticamente}protected void doPost (solicitud HttpServletRequest, respuesta HttpServletResponse) lanza ServletException, IOException {// TODO código auxiliar de método generado automáticamenteString email = request.getParameter ("correo electrónico");String contraseña = request.getParameter ("contraseña");TestBean testobj = new TestBean ();testobj.setEmail (correo electrónico);testobj.setPassword (contraseña);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd.forward (solicitud, respuesta);}}

Explicación del código:

Capa de controlador

Línea de código 14: mvc_servlet está extendiendo HttpServlet.

Línea de código 26: como el método utilizado es POST, la solicitud entra en un método doPost del servlet que procesa las solicitudes y las guarda en el objeto bean como testobj.

Línea de código 34: Al usar el objeto de solicitud, establecemos el atributo como gurubean al que se le asigna el valor de testobj.

Línea de código 35: aquí estamos usando el objeto del despachador de solicitudes para pasar el mensaje de éxito a mvc_success.jsp

TestBean.java

paquete demotest;importar java.io.Serializable;TestBean de clase pública implementa Serializable {public String getEmail () {devolver correo electrónico;}public void setEmail (String email) {this.email = correo electrónico;}public String getPassword () {devolver contraseña;}public void setPassword (contraseña de cadena) {this.password = contraseña;}Private String email = "nulo";contraseña de cadena privada = "nulo";}

Explicación del código:

Capa de modelo:

Línea de código 7-17: contiene los captadores y definidores de correo electrónico y contraseña que son miembros de la clase Test Bean

Línea de código 19-20: define el correo electrónico y la contraseña de los miembros del tipo de cadena en la clase de bean.

Mvc_success.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ page import = "demotest.TestBean"%> Éxito del gurú <%TestBean testguru = (TestBean) request.getAttribute ("gurubean");out.print ("Bienvenido," + testguru.getEmail ());%>

Explicación del código:

Línea de código 12: obtenemos el atributo mediante el objeto de solicitud que se ha establecido en el método doPost del servlet.

Línea de código 13: Estamos imprimiendo el mensaje de bienvenida y la identificación de correo electrónico que se han guardado en el objeto bean

Producción:

Cuando ejecuta el código anterior, obtiene el siguiente resultado:

Cuando haces clic en mvc_example.jsp, obtienes el formulario con correo electrónico y contraseña con el botón enviar.

Una vez que ingrese el correo electrónico y la contraseña en el formulario y luego haga clic en enviar

Después de hacer clic en enviar, la salida se muestra a continuación

Producción:

Cuando ingresa el correo electrónico y la contraseña en la pantalla y hace clic en enviar, los detalles se guardan en TestBean y desde TestBean se obtienen en la siguiente pantalla para obtener el mensaje de éxito.

Resumen:

En este artículo, hemos aprendido sobre la arquitectura MVC, es decir, Model View Controller.

JSP desempeña el papel de presentación de los datos y responsable del tratamiento. Es una interfaz entre el modelo y la vista, mientras que el modelo se conecta tanto al controlador como a la base de datos. La lógica empresarial principal está presente en la capa del modelo.

Articulos interesantes...