Escolar Documentos
Profissional Documentos
Cultura Documentos
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 - Beans - Action - Actions - Model - WebModel Vista - Paginas JSP/HML Controlador - Controller
Ingenio DS
Programando Soluciones http://ingeniods.wordpres.com
Ingenio DS
Programando Soluciones http://ingeniods.wordpres.com
web.xml Guarda la configuracin para conectarse a la base de datos. Guarda la configuracin (mapeo) del servlet.
InitModel.jsp
Ingenio DS
Programando Soluciones http://ingeniods.wordpres.com
2.
3.
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.
Ingenio DS
Programando Soluciones http://ingeniods.wordpres.com
index.jsp Carga la informacin de la configuracin. Incluye las otras paginas. Hace los llamados RegistarDepartamento y RegistrarEmpleado.
3
RegistarDepartamento RegistrarEmpleado
Controller Atender y re-direccionar llamados a RegistarDepartamento RegistrarEmpleado.. La primera vez inicializa, la segunda busca en memoria. los un y
los los
Ingenio DS
Programando Soluciones http://ingeniods.wordpres.com
Ingenio DS
Programando Soluciones http://ingeniods.wordpres.com
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
cualquier
url
la
que
llamemos
que
tenga
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
MODELO
BASE DE DATOS
VISTA
CONTROLADOR
MODELO
-Model -WebModel -Beans -Clases de la lgica de negocio
BASE DE DATOS
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