Está en la página 1de 16

Ingenio DS

Programando Soluciones
http://ingeniods.wordpres.com
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 patrn MVC
(modelo-vista-controlador), donde se separan aun mas las capas, no es la
intencin explicar el patrn MVC, sino explicar su aplicacin en JSP.
En mi corta experiencia he visto varias formas de aplicar este patrn a aplicaciones
de las cuales he hecho mi propia implementacin utilizando cosas de la una y de la
otra.
Modelo Vista Controlador
- Beans
- Action
- Actions
- Model
- WebModel
- Paginas
JSP/HML
- Controller
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 aplicacin
web.xml
Guarda la
configuracin
para conectarse
a la base de
datos.
Guarda la
configuracin
(mapeo) del
servlet.
InitModel.jsp
Carga la
configuracin de
la BD y se
conecta.
Inicializa
(controller, baseurl,
absoluteurl).
index.jsp
Carga a
InitModel.jsp
Ingenio DS
Programando Soluciones
http://ingeniods.wordpres.com
La manera de interactuar de la aplicacin es
pagina.jsp
Muestra informacin .
Llamado a servlets.
Controller.class
Atender y re-direccionar los
llamados a un Action.
Buscar en memoria o
cargar en memoria las
Actions
Action.class
Encapsular los mtodos
necesarios para permitir
seteo de parmetros (como
servlet).
Encapsular los mtodos
necesarios para permitir
ejecucin (doGet, doPost)
Re-direccionar.
2
3
1
3
1. Al ocurrir un evento, este
(dependiendo, de los parmetros
de mapeo) ser direccionado al
Controller.
2. El Controller cargar la Action
correspondiente setear y
ejecutar.
3. La Action se ejecuta y re-
direcciona a una pagina o en
algunos casos a otro Action.
Ingenio DS
Programando Soluciones
http://ingeniods.wordpres.com
La manera de interactuar de la aplicacin es
index.jsp
Carga la informacin de la
configuracin.
Incluye las otras paginas.
Hace los llamados
RegistarDepartamento y
RegistrarEmpleado.
Controller
Atender y re-direccionar los
llamados a un
RegistarDepartamento y
RegistrarEmpleado..
La primera vez los
inicializa, la segunda los
busca en memoria.
RegistarDepartamento
RegistrarEmpleado
Realizan una operacin.
.Re-direccional la pagina al
index.
2
3
1
Ingenio DS
Programando Soluciones
http://ingeniods.wordpres.com
El archivo de configuracin 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 configuracin realmente se encuentra dentro de las etiquetas
<web-app> y </web-app>
Nombre y descripcin solo etiquetas informativas
<display-name>EJERCICIO 13 MODELO-VISTA-CONTROLADOR</display-name>
<description> XML de configuracin para aplicar el patrn MVC en jsp</description>
Ingenio DS
Programando Soluciones
http://ingeniods.wordpres.com
El archivo de configuracin web.xml
Los parmetros o variables de contexto
<context-param> (declaramos un parmetro/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 declaracin)
De la forma anterior declaramos 5 parmetros
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 = direccin a nuestra aplicacin;
Ingenio DS
Programando Soluciones
http://ingeniods.wordpres.com
El archivo de configuracin web.xml
Definicin y mapeo del servlet
Esto hace referencia a la configuracin 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 conexin 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 mtodos para que funcione en entorno web (ser capaz de
sacar los parmetros 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 aplicacin)
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 especficamente es un servlet, con 3 mtodos
doPost(): se ejecuta cuando en el formulario que lo llama el method=post, este mtodo invoca al mtodo
ejecutar().
doGet(): se ejecuta cuando en el formulario que lo llama el method=get o cuando es llamado por medio
de un enlace, este mtodo invoca al mtodo ejecutar().
ejecutar(): ejecutar en algunas convecciones doRequest() o run(), este mtodo tiene que cargar a la accin
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*/
/*sacamos el mapa de acciones de la session*/
/*si aun no exite*/
/*lo inicializamos*/
/*Sacamos el contexto de la aplicacion*/
/* obtenemos la ruta (Accion) a ejecutar*/
/*si la ruta es null*/
/*lanzamos una exception*/
/*declaramos una accion, y la cargamos de mapa de acciones*/
/*si la accion no se encuentra en el mapa*/
/* la ruta viene en el formato "Accion/Bean" */
/* la ruta viene en el formato "Palabra1/Palabra2" */
/*dividimos la ruta en 2 justo por el caracter '/' */
/*si el numero de partes es diferente de 2 hubo algn error */
/*lanzamos una excepcion*/
/*tenemos la parte uno de la Accion */
/*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*/
/*guardamos el mapa de acciones en la session*/
/*si no se encontro la clase*/
/* o no se pudo instansiar la clase*/
/*o hubo un acceso no autorizado*/
/*lanza una excepcion*/
/*sacamos el model de la session*/
/*si el model == null*/
/*lanza una excepcion*/
/*seteamos los parmetros de la accion*/
/*y la ejecutamos*/
/*atrapamos cualquier excepcion */
/*Pasamos el mensaje a una ServletException*/
Para tener una idea mas clara mirar los
comentarios en la clase
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 mtodos sets y aparte un mtodo abstracto run. Todas las Acciones heredan de esta
clase.
Para mas detalles ver el cdigo en la aplicacin.
Ingenio DS
Programando Soluciones
http://ingeniods.wordpres.com
VISTA
MODELO
CONTROLADOR
BASE DE
DATOS
ACCIONES
ACCIONES
ACCIONES
Ingenio DS
Programando Soluciones
http://ingeniods.wordpres.com
ACCIONES
ACCIONES
ACCIONES
BASE DE
DATOS
MODELO
-Model
-WebModel
-Beans
-Clases de la lgica de
negocio
VISTA
- Paginas para presentacin
-Clases para presentacin
(todo lo que interactu con el
usuario).
CONTROLADOR
-Controller
(re-direccionamiento de
peticiones)
Ingenio DS
Programando Soluciones
http://ingeniods.wordpres.com

También podría gustarte