• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
MVC
 

MVC

on

  • 10,728 views

Implementación de MVC en JSP

Implementación de MVC en JSP

Statistics

Views

Total Views
10,728
Views on SlideShare
4,478
Embed Views
6,250

Actions

Likes
2
Downloads
196
Comments
2

8 Embeds 6,250

http://ingeniods.wordpress.com 5974
http://localhost 175
http://desarrolloaplicacioneswebjava.wikispaces.com 73
http://www.slideshare.net 15
https://ingeniods.wordpress.com 5
http://www.google.com.mx 4
http://translate.googleusercontent.com 2
url_unknown 2
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    MVC MVC Presentation Transcript

    • MAURO GOMEZ MEJIA IX SEMESTRE INGENIERIA DE SISTEMAS 05-2010 Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • En JSP existe una forma muy practica de programar usando el patrón MVC (modelo-vista-controlador), donde se separan aun mas las capas, no es la intención explicar el patrón MVC, sino explicar su aplicación en JSP. En mi corta experiencia he visto varias formas de aplicar este patrón a aplicaciones de las cuales he hecho mi propia implementación utilizando cosas de la una y de la otra. Modelo Vista Controlador - Beans - Paginas - Controller - Action JSP/HML - Actions - Model - WebModel Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • Las clases que interviene las representamos en el siguiente diagrama - Bean Departamento - Bean Empleado - Model utiliza a Empleado - Model utiliza a Departamento - WebModel extiende de Model - Action utiliza a Model - AgregarEmpleado es una Action - AgregarDepartamento es una Action - Controller utiliza a Action (o cualquier clase que extiende de ella) Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • La manera en que inicia la aplicación web.xml InitModel.jsp index.jsp •Guarda la • Carga la • Carga a configuración configuración de InitModel.jsp para conectarse la BD y se a la base de conecta. datos. • Inicializa •Guarda la (controller, baseurl, configuración absoluteurl). (mapeo) del servlet. Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • La manera de interactuar de la aplicación es 1. Al ocurrir un evento, este (dependiendo, de los parámetros de mapeo) será direccionado al pagina.jsp Controller. 2. El Controller cargará la Action • Muestra información . correspondiente seteará y • Llamado a servlets. ejecutará. 3. La Action se ejecuta y re- direcciona a una pagina o en 1 algunos casos a otro Action. 3 Controller.class Action.class • Atender y re-direccionar los • Encapsular los métodos llamados a un Action. 2 necesarios para permitir • Buscar en memoria o seteo de parámetros (como cargar en memoria las servlet). 3 Actions • Encapsular los métodos necesarios para permitir ejecución (doGet, doPost) •Re-direccionar. Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • La manera de interactuar de la aplicación es index.jsp •Carga la información de la configuración. • Incluye las otras paginas. 1 •Hace los llamados RegistarDepartamento y 3 RegistrarEmpleado. Controller RegistarDepartamento RegistrarEmpleado • Atender y re-direccionar los llamados a un 2 • Realizan una operación. RegistarDepartamento y •.Re-direccional la pagina al RegistrarEmpleado.. index. • La primera vez los inicializa, la segunda los busca en memoria. Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • El archivo de configuración web.xml El tipo de XML <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> La configuración realmente se encuentra dentro de las etiquetas <web-app> y </web-app> Nombre y descripción solo etiquetas informativas <display-name>EJERCICIO 13 MODELO-VISTA-CONTROLADOR</display-name> <description> XML de configuración para aplicar el patrón MVC en jsp</description> Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • El archivo de configuración web.xml Los parámetros o variables de contexto <context-param> (declaramos un parámetro/variable de contexto ) <param-name>nombre</param-name> (le damos un nombre) <param-value>valor</param-value> (le damos un valor) </context-param> (cerramos la declaración) De la forma anterior declaramos 5 parámetros • JdbcDriver = com.mysql.jdbc.Driver; • databaseURL= jdbc:mysql://localhost:3306/ejercicios; • databaseUser= root; • databaseKey=; • ABSOLUTEURL = http://localhost:8181/ejercicio13/; Los parametros los usamos para: • JdbcDriver = la clase driver que usaremos para conectarnos a la BD; • databaseURL= URL de la base de datos; • databaseUser= nombre de usuario a la base de datos; • databaseKey=; clave para la base de datos • ABSOLUTEURL = dirección a nuestra aplicación; Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • El archivo de configuración web.xml Definición y mapeo del servlet Esto hace referencia a la configuración del servlet quien responderá los llamados a los servlets <servlet>(abrimos la etiqueta para describir un servlet) <servlet-name>controlador</servlet-name>(que llamaremos controlador) <servlet-class>org.Controller</servlet-class>(y la clase es org.Controller) </servlet>(cerramos definicion del servlet) <servlet-mapping>(el mapeo del servlet) <servlet-name>controlador</servlet-name>(el servlet que se llama controlador) <url-pattern>/servlet/*</url-pattern>(responderá los llamados que tengan esta estructura /servlet/*) </servlet-mapping>(cerramos mapeo del servlet) O sea que nuestro servlet responderá cualquier url a la que llamemos que tenga algo_aqui/servlet/cualquier_cosa_aqui Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • InitModel.jsp Inicializando la conexión a la BD <jsp:useBean id="model" scope="session" class="org.WebModel"> <%model.init(application);%> </jsp:useBean> 1. Declaramos un bean de tipo WebModel que se llama modelo y que solo será visto en la session. 2. Dicho bean hereda de Model, pero tiene métodos para que funcione en entorno web (será capaz de sacar los parámetros que declaramos en el web.xml). <% String BASEURL=request.getContextPath();(sacamos la URL base en este caso “/ejercicio13”) String CONTROLLER=BASEURL+"/servlet“;(para los servlets en este caso “/ejercicio13/servlet”) String ABSOLUTEURL=application.getInitParameter("ABSOLUTEURL"); (ABSOLUTEURL en este caso será http://localhost:8181/ejercicio13/) (Los guardamos para que puedan ser vistos pr toda la aplicación) application.setAttribute("CONTROLLER",CONTROLLER); application.setAttribute("BASEURL",BASEURL); application.setAttribute("ABSOLUTEURL",ABSOLUTEURL); %> Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • LA PARTE JAVA Controller.java Controller específicamente es un servlet, con 3 métodos doPost(): se ejecuta cuando en el formulario que lo llama el method=“post”, este método invoca al método ejecutar(). doGet(): se ejecuta cuando en el formulario que lo llama el method=“get” o cuando es llamado por medio de un enlace, este método invoca al método ejecutar(). ejecutar(): ejecutar en algunas convecciones doRequest() o run(), este método tiene que cargar a la acción especifica que se quiere invocar. En la session se van guardando las acciones a medida que se van cargando. Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • LA PARTE JAVA Controller.java /*llamamos a la session*/ /*guardamos el mapa de acciones en la session*/ /*sacamos el mapa de acciones de la session*/ /*si no se encontro la clase*/ /*si aun no exite*/ /* o no se pudo instansiar la clase*/ /*lo inicializamos*/ /*o hubo un acceso no autorizado*/ /*Sacamos el contexto de la aplicacion*/ /*lanza una excepcion*/ /* obtenemos la ruta (Accion) a ejecutar*/ /*sacamos el model de la session*/ /*si la ruta es null*/ /*si el model == null*/ /*lanzamos una exception*/ /*lanza una excepcion*/ /*declaramos una accion, y la cargamos de mapa de acciones*/ /*seteamos los parámetros de la accion*/ /*si la accion no se encuentra en el mapa*/ /*y la ejecutamos*/ /* la ruta viene en el formato "Accion/Bean" */ /*atrapamos cualquier excepcion */ /* la ruta viene en el formato "Palabra1/Palabra2" */ /*Pasamos el mensaje a una ServletException*/ /*dividimos la ruta en 2 justo por el caracter '/' */ /*si el numero de partes es diferente de 2 hubo algún error */ Para tener una idea mas clara mirar los /*lanzamos una excepcion*/ /*tenemos la parte uno de la Accion */ comentarios en la clase /*tenemos la parte dos de la Accion */ /*nombre de la clase de la Accion= parte uno + parte dos */ /*Cargamos la clase*/ /*la instanciamos */ /*la guardamos en el mapa de acciones*/ Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • LA PARTE JAVA Action.java Esta clase es un “molde” para las acciones esta clase se encarga de declaras 4 variables y sus métodos sets y aparte un método abstracto run. Todas las Acciones heredan de esta clase. Para mas detalles ver el código en la aplicación. Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • BASE DE MODELO DATOS VISTA CONTROLADOR ACCIONES ACCIONES ACCIONES Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • MODELO BASE DE DATOS -Model -WebModel -Beans -Clases de la lógica de negocio VISTA CONTROLADOR - Paginas para presentación -Controller -Clases para presentación (re-direccionamiento de (todo lo que interactué con el peticiones) usuario). ACCIONES ACCIONES ACCIONES Ingenio DS Programando Soluciones http://ingeniods.wordpres.com
    • Ingenio DS Programando Soluciones http:/ /ingeniods.wordpres.com