4.4 Tutorial de JSP 2.0, JSTL y Apache Struts

Tamaño: px
Comenzar la demostración a partir de la página:

Download "4.4 Tutorial de JSP 2.0, JSTL y Apache Struts"

Transcripción

1 4.4 Tutorial de JSP 2.0, JSTL y Apache Struts

2 JSP 2.0 (1) Qué añade JSP 2.0 frente a JSP 1.x? Lenguaje de expresiones Anteriormente sólo estaba disponible en JSTL Documentos JSP Páginas JSP en sintaxis XML JSP 1.2 también permitía escribir documentos JSP, pero de una manera más incómoda Implementar tags a medida utilizando la propia tecnología JSP Se implementan en páginas JSP Más sencillo que el API de extensión de tags (javax.servlet.jsp.tagext), pero menos potente Útil para tags orientados a presentación, para tags que hagan uso de librerías existentes y para desarrolladores de páginas JSP que no dispongan de conocimientos de Java

3 JSP 2.0 (y 2) Compatibilidad con JSP 1.x Un contenedor de JSP 2.0 tiene que poder ejecutar aplicaciones con sintaxis JSP 1.x Es posible migrar una aplicación JSP 1.x a sintaxis JSP 2.0 página a página En este apartado, y en los dos siguientes, se ilustran la sintaxis de los documentos JSP y el lenguaje de expresiones

4 Lenguaje de expresiones (1) En JSP 1.x si se desea dar valor a un atributo de un tag, es preciso usar una expresión <%=... %> Ejemplo <jsp:usebean id="shoppingcart" scope="session" class="org.acme.shoppingcart"/> <xxx:if test="<%= shoppingcart.getnumberofproducts() > 0 %>">... </xxx:if> JSP 2.0 proporciona un lenguaje de expresiones para facilitar su construcción Ejemplo <xxx:if test="${sessionscope.shoppingcart.numberofproducts > 0}">... </xxx:if>

5 Lenguaje de expresiones (2) Expresiones y literales Las expresiones tienen que ir rodeadas por ${ y }. Cualquier valor que no empiece por ${, se considera un literal Los literales que incluyen el símbolo ${, han de escaparlo rodeándolo de ${' y '} Ejemplo: <xxx:atag att="this literal includes ${'${'} character"/> Acceso a atributos de objetos Java en expresiones Se puede acceder a las propiedades de un JavaBean, y a objetos de un Map, List o vector

6 Lenguaje de expresiones (3) Acceso a atributos de objetos Java en expresiones (cont) Ejemplos ${user.firstname} = user.getfirstname() ${user.address.city} = user.getaddress().getcity() ${user.preferencesmap["shipping"]} = user.getpreferencesmap().get("shipping") ${user.preferenceslist[0]} = user.getpreferenceslist().get(0) Unifica el tratamiento de los operadores. y [] ${user.firstname} es equivalente a ${user["firstname"]} ${user.preferencesmap["shipping"]} es equivalente a ${user.preferencesmap.shipping} Para determinados casos, es preciso usar el operador [] ${user.preferencesmap["book.fiction"]} es equivalente a user.getpreferencesmap().get("book.fiction") ${user.preferencesmap[product.category]} es equivalente a user.getpreferencesmap().get(product.getcategory())

7 Objetos implícitos Entre otros Lenguaje de expresiones (4) pagescope (Map) requestscope (Map) sessionscope (Map) applicationscope (Map) param (Map que mapea nombres de parámetros univaluados a String) paramvalues (Map que mapea nombres de parámetros multivaluados a String[]) Cuando se usa un objeto sin especificar su ámbito (el objeto implícito en el que está contenido), se busca en los ámbitos page, request, session y application (en este orden) Ejemplo <xxx:if test="${shoppingcart.numberofproducts > 0}">... </xxx:if>

8 Lenguaje de expresiones (y 5) Literales Boolean (true y false) Numéricos Cadenas de caracteres (entre comillas simples o dobles) null Operadores Aritméticos: +,-, *, /, div, %, mod Lógicos: &&, and,, or,!, not Relacionales: ==, eq,!=, ne, <, lt, >, gt, <=, le, >=, ge empty: permite comprobar si un valor es null Ejemplos <xxx:if test="${!empty requestscope.previous}">... </xxx:if> <xxx:if test="${sessionscope.shoppingcart.numberofproducts > 0}">... </xxx:if> Se pueden usar paréntesis

9 JSTL (1) En el pasado existían numerosas librerías de tags JSP que permitían Iterar sobre colecciones Imprimir valores de propiedades de JavaBeans de forma segura Internacionalización de mensajes, números, fechas, etc. Generación de URLs aplicando URL rewriting Acceso a documentos XML Etc Por ello, se decidió estandarizar una librería general de tags, llamada JSTL (JSP Standard Tag Library)

10 JSTL (2) Tags en JSTL Core Control de flujo Soporte para URLs I18n (internacionalización) Soporte para internacionalización: establecimiento del Locale, generación de mensajes, formateo de números, cantidades monetarias, fechas, etc. XML Parsing de un documento XML Flujo de control para recorrer un documento XML (alternativa a XSL para casos sencillos) Tags para lanzar transformaciones XSL

11 JSTL (y 3) Tags en JSTL (cont) Acceso a BDs Funciones Permiten lanzar sentencias SQL a BDs relacionales Sólo deberían usarse para prototipado rápido o aplicaciones muy simples JSP 2.0 define un mecanismo para añadir funciones al lenguaje de expresiones JSTL 1.1 define un conjunto de funciones estándar length (aplicable a Collection y String), tolowercase, touppercase, substring, contains, etc En este apartado y en los dos siguientes se ilustran parte de los tags de los grupos Core e I18n

12 Qué es Struts? Framework OpenSource para implementar aplicaciones web con servlets y JSP según el patrón arquitectónico Model-View-Controller Proyecto de Apache Autor original: Craig R. McClanahan Funciona sobre cualquier servidor de aplicaciones web que implemente las APIs de servlets y JSP Ha ganado gran relevancia en el mundo de las aplicaciones web Java Versión 1.0 estable en Julio 2001 Posteriormente, surgieron otros framework MVC

13 Qué proporciona Struts? Un framework que da soporte para implementar las capas controlador y vista de una aplicación web Servlet Front Controller y clases relacionadas Sistema de plantillas Validación de parámetros Una librería de tags JSP muy completa

14 El patrón Front Controller en Struts (1) javax.servlet.http.httpservlet org.apache.struts.action.actionservlet # doget # dopost 0..n org.apache.struts.action.action + execute <<use>> <<instantiate>> org.apache.struts.action.actionform + reset + validate Action1... ActionN ActionForm1 ActionFormN... <<use>>

15 El patrón Front Controller en Struts (2) ActionServlet Servlet Front Controller En web.xml se especifica que todas las URLs que impliquen procesamiento (por GET o POST) vayan a este servlet Ej.: las URLs que termine en.do Clases ActionForm Si el programador lo desea, puede acceder a los parámetros de la request a través de un JavaBean que extiende ActionForm Especialmente útil en formularios Clase Action => método execute Accede a los parámetros de la request, directamente o vía el ActionForm correspondiente Realiza la operación invocando un método de un Session Facade del modelo o una fachada del controlador Deja el resultado devuelto por el método en la request o en la sesión Devuelve un objeto ActionForward, que representa la URL que hay que visualizar a continuación (sendredirect o forward)

16 El patrón Front Controller en Struts (3) Fichero de configuración Clases ActionForm que usa nuestra aplicación Nombre lógico (ej.: loginform) Nombre completo de la clase (ej.: es.udc.fbellas.j2ee.strutstutorial.portal3.http.view.actionforms.loginform) URLs que implican procesamiento URL de tipo path relativo a contexto (ej.: /Login) No llevan el.do final Nombre completo de la clase Action (ej.: es.udc.fbellas.j2ee.strutstutorial.portal3.http.controller.actions.loginaction) Nombre lógico de la clase ActionForm asociada

17 El patrón Front Controller en Struts (y 4) Fichero de configuración (cont) Definiciones de nombres lógicos de URLs Nombre que usan las acciones cuando devuelven un ActionForward (ej.: ShowMainPage) sendredirect o forward URL a invocar (ej.: /MainPage.jsp) Cuando el servlet ActionServlet arranca (init), lee el fichero de configuración Crea una única instancia de cada clase Action No se crea una instancia de una clase Action por cada petición que se recibe Tienen que ser thread-safe Misma situación que cuando se trabaja con servlets

18 La librería de tags de Struts (1) Bean Imprimir el valor de las propiedades de JavaBeans de manera segura Soporte para internacionalización de mensajes No los usaremos, dado que JSTL ofrece una alternativa estándar Logic Control de flujo No los usaremos, dado que JSTL ofrece una alternativa estándar HTML Generación de HTML básico Campos de entrada en formularios Enlaces (con URL rewriting)

19 La librería de tags de Struts (y 2) Tiles Caso particular del patrón Composite View Sistema de plantillas para páginas JSP Reemplaza a Template El sistema de plantillas que se usaba con Struts 1.0

20 Arquitectura MVC con Struts Modelo Clases independientes de la vista y el controlador Controlador Conjunto de clases Action Interactúan con el modelo y seleccionan la siguiente vista (dejándole los datos en uno de los cuatro posibles ámbitos, normalmente request o session) Vista Conjunto de clases ActionForm Conjunto de páginas JSP No contienen código Java Sólo visualizan datos Usan acciones JSP para recuperar los valores a mostrar y formatearlos

21 Demo Portal-3 (1) Lanzar el navegador Acceder a Portal-3 main page

22 Demo Portal-3 (2) Clic en Login Clic en el botón Login

23 Demo Portal-3 (3) Terminar y lanzar el navegador dos días más tarde Clic en Logout Acceder a Portal-3 main page Portal-3 main page (Welcome to Portal-3)

24 Demo Portal-3 (4) Este ejemplo, al igual que los siguientes, usa XHTML 1.0 Estricto y CSS 2.0 XHTML CSS Versión XML de HTML (ej.: todos los tags tienen que cerrarse, los valores de los atributos tienen que entrecomillarse, tags en minúsculas, etc) El XHTML generado sólo contiene contenido estructurado El formato (fuentes, colores, posicionamiento, etc) se especifica en una hoja (fichero) de estilos CSS El aspecto gráfico de la aplicación puede cambiarse modificando la hoja CSS

25 Demo Portal-3 (y 5) CSS (cont) También puede ser interesante tener un conjunto de hojas CSS con distintos formatos para una misma aplicación web Visualización en ordenador de sobremesa Visualización en PDA (ej.: no muestra o resume cabecera, sidebar y pié de página) Printer-friendly pages Etc Se procura huir del uso de tablas, excepto para la presentación de datos que siempre han de visualizarse de manera tabular (ej.: las cuentas de un usuario en una aplicación bancaria) CSS tiene sus propios mecanismos de posicionamiento

26 Estructura de paquetes es.udc.fbellas.j2ee.util.struts.action es.udc.fbellas.j2ee.strutstutorial.portal3 http controller actions view actionforms messages model userfacade delegate exceptions

27 jar tvf StrutsTutorial.war (1) Index.jspx InternalError.jspx Login.jspx MainPage.jspx css/styles.css WEB-INF/Struts/struts-config.xml WEB-INF/lib/jstl.jar WEB-INF/lib/standard.jar WEB-INF/lib/antlr.jar WEB-INF/lib/commons-*.jar WEB-INF/lib/jakarta-oro.jar WEB-INF/lib/struts.jar WEB-INF/lib/StandardUtil.jar WEB-INF/lib/WebUtil.jar

28 jar tvf StrutsTutorial.war (y 2) WEB-INF/classes/es/udc/fbellas/j2ee/strutstutorial/portal3/http/ controller/actions/loginaction.class WEB-INF/classes/es/udc/fbellas/j2ee/strutstutorial/portal3/http/ controller/actions/loginmanager.class WEB-INF/classes/es/udc/fbellas/j2ee/strutstutorial/portal3/http/ controller/actions/logoutaction.class WEB-INF/classes/es/udc/fbellas/j2ee/strutstutorial/portal3/http/ controller/actions/mainpageaction.class WEB-INF/classes/es/udc/fbellas/j2ee/strutstutorial/portal3/http/view/ actionforms/loginform.class WEB-INF/classes/es/udc/fbellas/j2ee/strutstutorial/portal3/model/ userfacade/delegate/userfacadedelegate.class WEB-INF/classes/es/udc/fbellas/j2ee/strutstutorial/portal3/model/ userfacade/exceptions/incorrectpasswordexception.class WEB-INF/classes/es/udc/fbellas/j2ee/strutstutorial/portal3/http/view/ messages/messages.properties WEB-INF/web.xml

29 Comentarios (1) Documentos JSP Existen varios métodos para especificar que una página JSP es un documento JSP Quizás la manera más natural consiste en usar un descriptor de la aplicación web conforme a Servlet 2.4 (como ya hicimos en anteriores apartados) y usar jspx como extensión de las páginas JSP que sean documentos JSP WEB-INF/Struts struts-config.xml: configuración de Struts para la aplicación del tutorial

30 Comentarios (y 2) WEB-INF/lib struts.jar, commons-*.jar: Struts standard.jar, jstl.jar, jakarta-oro.jar, antlr.jar: Jakarta Standard TagLibs (implementación OpenSource de JSTL) StandardUtil.jar y WebUtil.jar: subsistema Util de J2EE-Examples WEB-INF/classes/es/.../Messages.properties Internacionalización de mensajes

31 WEB-INF/web.xml (1) <?xml version="1.0" encoding="iso "?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee version="2.4"> <distributable/> <!-- =============== Standard TagLibs configuration ============= --> <context-param> <param-name>javax.servlet.jsp.jstl.fmt.localizationcontext </param-name> <param-value>es.udc.fbellas.j2ee.strutstutorial.portal3.http. view.messages.messages</param-value> </context-param>

32 WEB-INF/web.xml (2) <!-- ================= Front controller configuration =========== --> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.actionservlet </servlet-class> <init-param> <param-name>config</param-name> <param-value>/web-inf/struts/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet>

33 WEB-INF/web.xml (y 3) <!-- ================ Servlet mapping =========================== --> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- ======================== Session =========================== --> <session-config> <session-timeout>30</session-timeout> </session-config> <!-- ==================== Welcome page ========================== --> <welcome-file-list> <welcome-file>index.jspx</welcome-file> </welcome-file-list> </web-app>

34 Comentarios (1) context-param Permite definir un parámetro de configuración global a toda la aplicación web Accesible vía Servlet.getServletConfig().getServletContext ().getinitparameter() En el ejemplo se utiliza para dar valor al parámetro de configuración javax.servlet.jsp.jstl.fmt.localizationcontext Lo usan los tags de internacionalización de mensajes de JSTL Nombre del fichero de mensajes (sin sufijo.properties) Debe estar debajo de WEB-INF/classes y usar un nombre consistente con su ubicación (como si de una clase se tratase)

35 Comentarios (2) Servlet org.apache.struts.actions.actionservlet Aparecen dos tags que no hemos usado hasta ahora init-param Permite definir un parámetro de configuración específico al servlet y su valor Accesible vía Servlet.getServletConfig().getInitParameter() load-on-startup Indica que el servlet se debería cargar cuando el servidor arranque la aplicación web El valor (opcional) indica el orden relativo de carga con respecto a otros servlets (cuanto menor sea el valor, antes se carga)

36 Comentarios (y 3) Servlet org.apache.struts.actions.actionservlet Parámetros de inicialización config Path de tipo relativo a contexto del fichero de configuración de Struts detail Nivel de detalle en los mensajes de depuración durante el parsing de los ficheros de configuración debug Nivel de detalle en los mensajes de depuración de ActionServlet

37 WEB-INF/Struts/struts-config.xml (1) <?xml version="1.0" encoding="iso "?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <!-- ============ Form Bean Definitions =========================== --> <form-beans> <form-bean name="loginform" type="es.udc.fbellas.j2ee.strutstutorial.portal3.http.view. actionforms.loginform"/> </form-beans>

38 WEB-INF/Struts/struts-config.xml (2) <!-- ============ Global Forward Definitions ====================== --> <global-forwards> <forward name="mainpage" path="/mainpage.do" redirect="true"/> <forward name="internalerror" path="/internalerror.jspx" redirect="true"/> </global-forwards> <!-- ============ Action Mapping Definitions ====================== --> <action-mappings> <action path="/mainpage" type="es.udc.fbellas.j2ee.strutstutorial.portal3.http. controller.actions.mainpageaction"> <forward name="showmainpage" path="/mainpage.jspx"/> </action> <action path="/login" type="es.udc.fbellas.j2ee.strutstutorial.portal3.http. controller.actions.loginaction" name="loginform" scope="request" input="/login.jspx" validate="true"/>

39 WEB-INF/Struts/struts-config.xml (y 3) <action path="/logout" type="es.udc.fbellas.j2ee.strutstutorial.portal3.http. controller.actions.logoutaction"/> <!-- ============================================================== The standard administrative actions available with Struts. These must be either omitted or protected by security in a real application deployment. ================================================================ --> <action path="/admin/addformbean" type="org.apache.struts.actions.addformbeanaction"/>... </action-mappings> <!-- ============ Message Resources Definitions =================== --> <message-resources parameter="es.udc.fbellas.j2ee.strutstutorial. portal3.http.view.messages.messages"/> </struts-config>

40 Comentarios (1) En el fichero struts-config.xml se usa <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> El especificador PUBLIC permite especificar un identificador y una URI para la ubicación del DTD El procesador del documento XML (en este caso, Struts) puede usar el identificador para recuperar un DTD localmente almacenado, y en consecuencia, no usar la URI especificada struts.jar incluye el DTD

41 Comentarios (2) Definiciones de nombres lógicos de URLs Se usan en la implementación de las acciones para devolver un ActionForward y en algunas acciones JSP Se especifican con forward Atributos documentados en JavaDoc de org.apache.struts.action.actionforward name: nombre lógico path: path relativo a contexto de la URL a la que se invocará redirect: true (sendredirect) o false (forward) false por defecto Pueden ser globales (global-forwards) o particulares a una acción (action)

42 Comentarios (3) action Atributos documentados en JavaDoc de org.apache.struts.config.actionconfig type: nombre completo de la clase Action path: URL (path relativo a contexto) que provocará la invocación de la acción Se especifican sin el sufijo.do! name: nombre del ActionForm (definido por form-bean) que captura los parámetros de la invocación scope: ámbito (request o session) del ActionForm En general, request input: path relativo a contexto del formulario de entrada validate: true si el Front Controller tiene que llamar al método validate del ActionForm En general, true

43 Comentarios (y 4) message-resources Especifica la ubicación del fichero de mensajes Actualmente Struts no está integrado con JSTL

44 WEB-INF/classes/es/.../Messages.properties (1) Buttons.login=Login ErrorMessages.loginName.notFound=Login name not found ErrorMessages.mandatoryField=Mandatory field ErrorMessages.password.incorrect=Incorrect password ErrorMessages.retry=Please, check if the operation has been performed, \ and retry if necessary errors.footer=</span> errors.header=<span class="errormessage"> InternalError.title=Internal error

45 WEB-INF/classes/es/.../Messages.properties (y 2) Login.loginName=Login name Login.password=Password Login.rememberMyPassword=Remember my password (cookies must be enabled) Login.title=Portal-3 login form MainPage.hello=Hello MainPage.login=Login MainPage.logout=Logout MainPage.title=Portal-3 main page MainPage.welcome=Welcome to Portal-3

46 Comentarios (1) Asocia pares <identificadormensaje, mensaje> Convenios de nombrado para los identificadores de mensajes Ordenados alfabéticamente errors.footer y errors.header son dos identificadores especiales que entiende la acción html:errors de Struts Messages.properties Mensajes en el lenguaje por defecto del servidor Messages_xx.properties Mensajes en el lenguaje cuyo código ISO es xx Códigos ISO en en: Inglés es: Español gl: Gallego Etc

47 Comentarios (y 2) Messages.properties sólo resuelve un aspecto particular de la internacionalización de aplicaciones: impresión de mensajes en distintos idiomas En una aplicación más compleja puede ser necesario tener trozos de páginas en distintos idiomas (con gran cantidad de texto estático) y seleccionarlos o incluirlos dinámicamente en función del idioma Otros aspectos en internacionalización Formatear y tratar fechas, horas, números, cantidades monetarias JSTL proporciona tags para ello También paquetes java.text y java.util Puede requerir tablas para almacenar contenido en distintos idiomas Ej.: un servicio de noticias

48 es.udc.fbellas.j2ee.strutstutorial.portal3.model.userfacade.delegate UserFac adedelegate + UserFacadeDelegate() + login(loginname : String, password : String, pas swordisencrypted : boolean) : void Simula la fachada del modelo que proporciona las operaciones relativas a la interacción del usuario con el portal

49 es.udc.fbellas.j2ee.util.struts.action Action (from action) DefaultAction + execute(actionmapping, actionform, request, response) : ActionForward # doexecute(actionmapping, actionform, request, response) : ActionForward # dooninternalerror(actionmapping, actionform, request, response, internalerrorexception) : ActionForw... P ropertyvalidator

50 Comentarios DefaultAction Problema En general, las clases Action invocarán una operación sobre un Business Delegate del modelo o una fachada del controlador, que puede lanzar InternalErrorException Es necesario (1) capturarla, (2) imprimirla en un log (para depuración) e (3) ir a una página que indique error interno Las clases Action derivarán de DefaultAction Implementa execute (Template Method) en términos de doexecute y dooninternalerror Las clases hijas implementan doexecute, que tiene la misma signatura que execute, pero puede lanzar adicionalmente InternalErrorException PropertyValidator Clase utilidad para validar campos de entrada comunes (double, long, String, etc.)

51 es.udc.fbellas.j2ee.util.struts.action.defaultaction (1) package es.udc.fbellas.j2ee.util.struts.action; import java.io.ioexception; import javax.servlet.servletcontext; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.servlet.servletexception; import org.apache.struts.action.action; import org.apache.struts.action.actionmapping; import org.apache.struts.action.actionform; import org.apache.struts.action.actionforward; import es.udc.fbellas.j2ee.util.exceptions.internalerrorexception;

52 es.udc.fbellas.j2ee.util.struts.action.defaultaction (2) public abstract class DefaultAction extends Action { public ActionForward execute(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { } try { return doexecute(mapping, form, request, response); } catch (Exception e) {// Any exception thrown by "doexecute", // including instances of // "RuntimeException". return doonexception(mapping, form, request, response, e); } protected abstract ActionForward doexecute(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, InternalErrorException;

53 es.udc.fbellas.j2ee.util.struts.action.defaultaction (y 3) protected ActionForward doonexception( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, Exception exception) throws IOException, ServletException { /* * Log error, even with debug level <= 0, because it is a * severe error. */ ServletContext servletcontext = servlet.getservletconfig().getservletcontext(); servletcontext.log(exception.getmessage(), exception); /* Redirect to input page. */ return mapping.findforward("internalerror"); } }

54 es.udc.fbellas.j2ee.util.struts.action.propertyvalidator (1) public final class PropertyValidator { private final static String INCORRECT_VALUE = "ErrorMessages.incorrectValue"; private final static String MANDATORY_FIELD = "ErrorMessages.mandatoryField"; private PropertyValidator() {} public final static long validatelong(actionerrors errors, String propertyname, String propertyvalue, boolean mandatory, long lowervalidlimit, long uppervalidlimit) { long propertyvalueaslong = 0; if (validatemandatory(errors, propertyname, propertyvalue, mandatory)) { boolean propertyvalueiscorrect = true;

55 es.udc.fbellas.j2ee.util.struts.action.propertyvalidator (2) try { propertyvalueaslong = new Long(propertyValue).longValue(); if ( (propertyvalueaslong < lowervalidlimit) (propertyvalueaslong > uppervalidlimit) ) { propertyvalueiscorrect = false; } } catch (NumberFormatException e) { propertyvalueiscorrect = false; } if (!propertyvalueiscorrect) { errors.add(propertyname, new ActionMessage(INCORRECT_VALUE)); } } return propertyvalueaslong; }

56 es.udc.fbellas.j2ee.util.struts.action.propertyvalidator (y 3) public final static boolean validatemandatory(actionerrors errors, String propertyname, String propertyvalue) { } if ((propertyvalue == null) (propertyvalue.length() == 0)) { errors.add(propertyname, new ActionMessage(MANDATORY_FIELD)); return false; } else { return true; } private final static boolean validatemandatory(actionerrors errors, String propertyname, String propertyvalue, boolean mandatory) { } if (mandatory) { return validatemandatory(errors, propertyname, propertyvalue); } else { return true; } } // Resto de métodos validatexxx => Análogos...

57 Comentarios org.apache.struts.action.actionmapping Permite acceder a los valores configurados en strutsconfig.xml para la acción en ejecución (inclusive a los forwards globales) org.apache.struts.action.actionerrors Juega el papel del mapa de errores que hemos empleado en apartados anteriores El mensaje de error es un org.apache.struts.action.actionmessage, que dispone de un constructor que permite especificar el identificador del mensaje de error (en Messages.properties) ActionMessage se introdujo en Struts 1.2, y reemplaza a ActionError org.apache.struts.action.actionforward Representa la siguiente URL a la que hay que ir El Front Controller lo invocará después de llamar al método execute sobre la acción

58 es.udc.fbellas.j2ee.strutstutorial.portal3.http.view.actionforms.loginform (1) public class LoginForm extends ActionForm { private String loginname; private String password; private boolean remembermypassword; public LoginForm() { reset(); } public String getloginname() { return loginname; } public void setloginname(string loginname) { this.loginname = loginname.trim(); }

59 es.udc.fbellas.j2ee.strutstutorial.portal3.http.view.actionforms.loginform (2) public String getpassword() { return password; } public void setpassword(string password) { this.password = password; } public boolean getremembermypassword() { return remembermypassword; } public void setremembermypassword(boolean remembermypassword) { this.remembermypassword = remembermypassword; }

60 es.udc.fbellas.j2ee.strutstutorial.portal3.http.view.actionforms.loginform (y 3) public void reset(actionmapping mapping, HttpServletRequest request) { reset(); } public ActionErrors validate(actionmapping mapping, HttpServletRequest request) { } ActionErrors errors = new ActionErrors(); PropertyValidator.validateMandatory(errors, "loginname", loginname); PropertyValidator.validateMandatory(errors, "password", password); return errors; private void reset() { loginname = null; password = null; remembermypassword = false; } }

61 Comentarios LoginForm Juega el mismo papel que la clase vista en el apartado 4.2 Hereda de org.apache.struts.action.actionform Generalmente interesa redefinir reset y validate reset El Front Controller lo llama antes de dar valor a las propiedades validate Permite validar las propiedades después de que el Front Controller les haya dado valores Sólo se invoca si se ha especificado validate="true" para la acción correspondiente en struts-config.xml Si devuelve un ActionErrors no vacío, el Front Controller (1) no invocará el método execute sobre la acción correspondiente, (2) insertará un atributo con los errores en la request, y (3) hará un forward a la URL que especifica el atributo input del action correspondiente en strutsconfig.xml (formulario de entrada)

62 es.udc.fbellas.j2ee.strutstutorial.portal3.http.controller.actions DefaultAc tion (from action) MainPageAction LoginAction LogoutAction <<use>> <<use>> <<use>> LoginManager <<us e>> UserFacadeDelegate (from delegate)

63 es.udc.fbellas.j2ee.strutstutorial.portal3.http.controller.actions.loginaction (1) public class LoginAction extends DefaultAction { public ActionForward doexecute(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, InternalErrorException { /* Get data. */ LoginForm loginform = (LoginForm) form; String loginname = loginform.getloginname(); String password = loginform.getpassword(); boolean remembermypassword = loginform.getremembermypassword(); /* Do login. */ ActionMessages errors = new ActionMessages();

64 } es.udc.fbellas.j2ee.strutstutorial.portal3.http.controller.actions.loginaction (y 2) try { LoginManager.login(request, response, loginname, password, remembermypassword); } catch (InstanceNotFoundException e) { errors.add("loginname", new ActionMessage( "ErrorMessages.loginName.notFound")); } catch (IncorrectPasswordException e) { errors.add("password", new ActionMessage( "ErrorMessages.password.incorrect")); } /* Return ActionForward. */ if (errors.isempty()) { return mapping.findforward("mainpage"); } else { saveerrors(request, errors); return new ActionForward(mapping.getInput()); } }

65 Comentarios Las acciones utilizan el método saveerrors (heredado de org.struts.apache.action.action) para insertar un atributo con los errores en la request org.apache.struts.action.actionmessages Se introdujo en Struts 1.2 Similar a ActionErrors Existen dos versiones del método saveerrors, una que acepta ActionErrors ( deprecated ) y otra que acepta ActionMessages (el usado en el ejemplo)

DESARROLLO DE APLICACIONES WEB Introducción a Struts Framework

DESARROLLO DE APLICACIONES WEB Introducción a Struts Framework DESARROLLO DE APLICACIONES WEB Introducción a Struts Framework 1. Objetivo: Introducir los conceptos relacionados con la construcción de aplicaciones Web Java basadas en el Framework Web MVC2 Struts. 2.

Más detalles

La vista: ActionForms y taglibs propias

La vista: ActionForms y taglibs propias La vista: ActionForms y taglibs propias Índice 1 ActionForms..2 1.1 Introducción. 2 1.2 El ciclo de vida de un ActionForm.. 3 1.3 Cómo definir un ActionForm..3 1.4 Tipos de datos del ActionForm: conversión

Más detalles

Sistemas de Información 12/13 Servlets y JSPs (Java Server Pages)

Sistemas de Información 12/13 Servlets y JSPs (Java Server Pages) 12/13 Servlets y JSPs (Java Server Pages) Departamento Informática e Ingeniería de Sistemas Universidad de Zaragoza (raqueltl@unizar.es) " Guión Introducción Servlets Introducción Clases e interfaces del

Más detalles

A continuación en la figura D.1 se verá el código de una implementación del archivo struts-config.xml:

A continuación en la figura D.1 se verá el código de una implementación del archivo struts-config.xml: Apéndice D Configuración de Struts [McClanahan, 2002] Configuración de Struts Antes de poder construir una aplicación en Struts es necesario realizar varias configuraciones. Estas configuraciones incluyen

Más detalles

Struts. Índice. Copyright 2010-2011 Dept. Ciencia de la Computación e IA All rights reserved.

Struts. Índice. Copyright 2010-2011 Dept. Ciencia de la Computación e IA All rights reserved. Índice 1 Introducción a Struts: El controlador y las acciones 3 1.1 Introducción a Struts3 1.2 El controlador..5 1.3 Las acciones.5 1.4 Seguridad declarativa en Struts12 2 Ejercicios sesión 1 - Introducción

Más detalles

Lección 1 Introducción a Struts. www.globalmentoring.com.mx uacosta@globalmentoring.com.mx

Lección 1 Introducción a Struts. www.globalmentoring.com.mx uacosta@globalmentoring.com.mx Lección 1 Introducción a Struts www.globalmentoring.com.mx uacosta@globalmentoring.com.mx Lección 1. Introducción a Struts Lección 1. Introducción a Struts Un framework es un conjunto de clases que nos

Más detalles

Introducción (1) En una aplicación web, especialmente en Internet, los cambios a la interfaz gráfica son muy frecuentes

Introducción (1) En una aplicación web, especialmente en Internet, los cambios a la interfaz gráfica son muy frecuentes 4.2 Tutorial de JSP Introducción (1) Situación en el apartado anterior: el texto generado para el aspecto (vista) de la interfaz gráfica (HTML, WML, etc.) está mezclado con código Java No es posible usar

Más detalles

FUNCIONAMIENTO: FUNCIONALIDAD

FUNCIONAMIENTO: FUNCIONALIDAD STRUTS Qué Es? Es un framework que implementa el patrón de arquitectura MVC en Java. El patrón de arquitectura MVC (Model-View-Controller) es un patrón que define la organización independiente del Model

Más detalles

4. DESARROLLO WEB CON JAVA JSP & SERVLETS

4. DESARROLLO WEB CON JAVA JSP & SERVLETS 4. DESARROLLO WEB CON JAVA JSP & SERVLETS La programación de aplicaciones web sobre la especificación de JSP y Servlets es un subconjunto de la plataforma Java EE. Existen muchas formas de estructurar

Más detalles

Java Struts Framework. Juan Fco. Rodríguez Hervella

Java Struts Framework. Juan Fco. Rodríguez Hervella Java Struts Framework Juan Fco. Rodríguez Hervella Indice Introducción Struts Framework Ejemplo Conclusiones. Título 2 Introducción Entorno para la construcción de aplicaciones web. Basado en el patrón

Más detalles

Especialista Universitario Java Enterprise. Struts. Sesión 4: Introducción a Struts 2. 2010-2011 Depto. Ciencia de la Computación e IA

Especialista Universitario Java Enterprise. Struts. Sesión 4: Introducción a Struts 2. 2010-2011 Depto. Ciencia de la Computación e IA Struts Sesión 4: Introducción a Struts 2 Indice Motivación De Struts 1.x a Struts 2 Acciones Actionforms Taglibs Internacionalización Validación Conceptos nuevos en Struts 2 2 Por qué era necesario Struts

Más detalles

Licencia Copyright (c) 2004 Hernán Darío Fernández. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la GNU

Licencia Copyright (c) 2004 Hernán Darío Fernández. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la GNU Licencia Copyright (c) 2004 Hernán Darío Fernández. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la GNU Free Documentation License, Versión 1.1 o cualquier

Más detalles

ISJu: Técnicas de Programación Cartilla Teórica-Práctica 2014. Instalación del "Eclipse IDE for Java EE Developers" y el servidor "Apache Tomcat"

ISJu: Técnicas de Programación Cartilla Teórica-Práctica 2014. Instalación del Eclipse IDE for Java EE Developers y el servidor Apache Tomcat Unidad 6: Servlets Instalación del "Eclipse IDE for Java EE Developers" y el servidor "Apache Tomcat" "Eclipse IDE for Java EE Developers" Para desarrollar aplicaciones que se ejecuten en un servidor web

Más detalles

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA DIPLOMATURA DESARROLLO DE APLICACIONES JAVA Contenidos MÓDULO UNO: Características del Lenguaje. OOP Reconocer las características del lenguaje Java y sus componentes. Distinguir la similitudes y diferencias

Más detalles

Contiene código HTML normal junto elementos especiales de JSP. Internamente, el servidor de aplicaciones las compilará a un servlet

Contiene código HTML normal junto elementos especiales de JSP. Internamente, el servidor de aplicaciones las compilará a un servlet JSP Java Server Pages cesaracebal.com acebal@uniovi.es Qué es JSP? Una tecnología para crear páginas Web dinámicas Contiene código HTML normal junto elementos especiales de JSP Están construidas sobre

Más detalles

JSP Básico. Índice. 2 Traducción de los JSP a servlets...2. 6 Acciones...8. 1 Introducción a JSP... 2

JSP Básico. Índice. 2 Traducción de los JSP a servlets...2. 6 Acciones...8. 1 Introducción a JSP... 2 Índice 1 Introducción a JSP... 2 2 Traducción de los JSP a servlets...2 3 Elementos de JSP...3 4 Inserción de código en páginas JSP... 4 4.1 Expresiones...4 4.2 Scriptlets...4 4.3 Declaraciones... 4 4.4

Más detalles

Requisitos. Universidad ORT Arquitectura de Software

Requisitos. Universidad ORT Arquitectura de Software Requisitos Java Development Kit (JDK) 1.5 o superior NetBeans IDE 6.5 o superior JBoss Application Server 4.2.x o 5.x.x Variable de entorno JAVA_HOME apuntando al directorio de instalación de la JDK 1

Más detalles

DESARROLLO DE APLICACIONES WEB Introducción a Java Server Faces

DESARROLLO DE APLICACIONES WEB Introducción a Java Server Faces DESARROLLO DE APLICACIONES WEB Introducción a Java Server Faces 1. Objetivo: Introducir los conceptos relacionados con la construcción de aplicaciones Web Java basadas en Java Server Faces 2.x. 2. Prerrequisitos:

Más detalles

Java EE JavaServer Pages (JSP)

Java EE JavaServer Pages (JSP) Java EE JavaServer Pages (JSP) Aplicaciones Web/Sistemas Web Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense Madrid Material bajo

Más detalles

UNIVERSIDAD AUTÓNOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR

UNIVERSIDAD AUTÓNOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD AUTÓNOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR Herramienta flexible para la creación y gestión de cuestionarios Web adaptativos: Aplicación al diseño de encuestas de satisfacción sobre servicios

Más detalles

JSP (I) Aplicaciones Distribuidas

JSP (I) Aplicaciones Distribuidas JSP (I) Aplicaciones Distribuidas Contenido Limitación Modelo Servlets Definición. Elementos de Script Expresiones y declaraciones. Directivas. JavaBeans. Otros aspectos de interés Etiquetas de Extensión

Más detalles

Librería Estándar de Etiquetas JSP (JSTL JSP Standard Tag Library)

Librería Estándar de Etiquetas JSP (JSTL JSP Standard Tag Library) Librería Estándar de Etiquetas JSP (JSTL JSP Standard Tag Library) La Librería Estándar de Etiquetas JSP (JSTL) es una especificación complementaria que amplía el conjunto básico de etiquetas JSP. La especificación

Más detalles

Un servlet es una clase java que implementa la Servlet interface. Un servlet corre dentro de un contexto denominado Servlet engine.

Un servlet es una clase java que implementa la Servlet interface. Un servlet corre dentro de un contexto denominado Servlet engine. Capítulo 6 Servlets En esta sección se va a tratar el primer componente que corre del lado del servidor, y es uno de los puntos fundamentales para la comunicación entre el cliente (browser) y el servidor.

Más detalles

Mario Muñoz Organero & Norberto Fernández * Departamento de Ingeniería Telemática http://www.it.uc3m.es/mario http://www.it.uc3m.

Mario Muñoz Organero & Norberto Fernández * Departamento de Ingeniería Telemática http://www.it.uc3m.es/mario http://www.it.uc3m. JSP (I) Mario Muñoz Organero & Norberto Fernández * Departamento de Ingeniería Telemática http://www.it.uc3m.es/mario http://www.it.uc3m.es/berto (*) Agradecimientos a Lourdes Tajes en cuyo material docente

Más detalles

4.4 Caso de Estudio: Diseño e Implementación de la Capa Web de MiniPortal

4.4 Caso de Estudio: Diseño e Implementación de la Capa Web de MiniPortal 4.4 Caso de Estudio: Diseño e Implementación de la Capa Web de MiniPortal Introducción y Objetivo Qué es MiniPortal? Un portal con registro de usuarios y sin contenidos Arquitectura reusable para implementar

Más detalles

Fundamentos para el desarrollo de aplicaciones en la red. Tema: Frameworks de desarrollo sobre páginas JSP. Autor: Elías Niño

Fundamentos para el desarrollo de aplicaciones en la red. Tema: Frameworks de desarrollo sobre páginas JSP. Autor: Elías Niño Fundamentos para el desarrollo de aplicaciones en la red Tema: Frameworks de desarrollo sobre páginas JSP Autor: Elías Niño JSF Uno de los tantos frameworks de desarrollo es conocido como JSF (Java Server

Más detalles

Java Servlets. Luis Fernando Llana Díaz. 17 de abril de 2006. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java Servlets. Luis Fernando Llana Díaz. 17 de abril de 2006. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de abril de 00 input, output En pascal input, output program holamundo (input, output); var nombre : String; begin

Más detalles

5.3.2 Java Server Faces (JSF)

5.3.2 Java Server Faces (JSF) 5.3.2 Java Server Faces (JSF) Framework que implementa el patrón MVC (Modelo-Vista-Controlador) Basado en componentes y eventos del lado del servidor Mantiene del lado del servidor una representación del

Más detalles

4.4 Caso de Estudio: Diseño e Implementación de la Capa Web de MiniPortal

4.4 Caso de Estudio: Diseño e Implementación de la Capa Web de MiniPortal 4.4 Caso de Estudio: Diseño e Implementación de la Capa Web de MiniPortal Introducción y Objetivo Qué es MiniPortal? Un portal con registro de usuarios y sin contenidos Arquitectura reusable para implementar

Más detalles

Curso Desarrollo Java Web con JSP, Servlets y el MVC

Curso Desarrollo Java Web con JSP, Servlets y el MVC Curso Desarrollo Java Web con JSP, Servlets y el MVC Objetivos: En este curso práctico aprenderás a desarrollar páginas JSP bajo el modelo MVC. Entenderás con desarrollar aplicaciones Web en Java bajo

Más detalles

Tema 4: Tecnologías Web Java

Tema 4: Tecnologías Web Java Tema 4: Tecnologías Web Java Introducción Aplicación web Aplicación que corre en al menos un servidor y a la que el usuario accede desde un cliente de propósito general (ej.: navegador en un PC, teléfono

Más detalles

Introducción a los servlets

Introducción a los servlets Introducción a los servlets (Febrero de 2005) Introducción En breve: un servlet es un programa ejecutado en el servidor (a diferencia de los applets que se ejecutan en el cliente). Es un mecanismo para

Más detalles

Introducción al desarrollo web (idesweb)

Introducción al desarrollo web (idesweb) Introducción al desarrollo web (idesweb) Práctica 8: PHP 2 (cookies y sesiones) 1. Objetivos Conocer el concepto de cookie y sus posibles usos. Aprender a utilizar las cookies con PHP. Conocer el concepto

Más detalles

4.1 Tutorial de Servlets y JSPs

4.1 Tutorial de Servlets y JSPs 4.1 Tutorial de Servlets y JSPs Índice Introducción Framework de Servlets JSPs Ejemplo pojo-servjsptutorial Empaquetado de una aplicación Web Ficheros WAR y web.xml Frameworks POJO para interfaz Web Objetivo

Más detalles

Java 2 Enterprise Edition

Java 2 Enterprise Edition 12. J2EE Java 2 Enterprise Edition 316 12. J2EE Java 2 Enterprise Edition define el estándar para el desarrollo de aplicaciones distribuidas en arquitecturas cliente/servidor. Construido sobre la plataforma

Más detalles

Laboratorio de Aplicaciones Telemáticas

Laboratorio de Aplicaciones Telemáticas Java Server Pages (JSP) Laboratorio de plicaciones Telemáticas Jesús rias Fisteus jaf@it.uc3m.es Curso 2007/2008 Edited with emacs + LT E X+ prosper Universidad Carlos de adrid V E S E Java Server Pages

Más detalles

4.5 Caso de estudio: diseño e implementación de las capas controlador y vista de MiniBank con JSTL y Jakarta Struts.

4.5 Caso de estudio: diseño e implementación de las capas controlador y vista de MiniBank con JSTL y Jakarta Struts. 4.5 Caso de estudio: diseño e implementación de las capas controlador y vista de MiniBank con JSTL y Jakarta Struts. Patrones usados Introducción (1) Introducción (2) En este apartado estudiaremos el diseño

Más detalles

Sistemas de Información 12/13 Ejercicios Tecnologías Web

Sistemas de Información 12/13 Ejercicios Tecnologías Web 12/13 Ejercicios Tecnologías Web Departamento Informática e Ingeniería de Sistemas Universidad de Zaragoza (raqueltl@unizar.es) " Guión Introducción sesiones y cookies con Servlets Ejercicio 1: Preguntas

Más detalles

Introducción a las aplicaciones WEB

Introducción a las aplicaciones WEB Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid 3 de mayo de 2010 Qué es Internet? I LAN: Local Area Network, red de ámbito local. Qué es Internet? II Qué es Internet?

Más detalles

Validación. Internacionalización

Validación. Internacionalización Índice 1 Validación.. 2 1.1 Configuración. 2 1.2 Definir qué validar y cómo.. 2 1.3 Los validadores estándar3 1.4 Mensajes de error..4 1.5 Modificar el ActionForm para Validator.. 7 1.6 Validación en el

Más detalles

Curso Java Web (JSP's/Servlets)

Curso Java Web (JSP's/Servlets) Curso Java Web (JSP's/Servlets) JSP's ("Java Server Pages") Composición Un JSP ("Java Server Page") es uno de los componentes más básicos empleados para aplicaciones de Servidor en Java. Su composición

Más detalles

Servlets. Unidad: 4 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

Servlets. Unidad: 4 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Servlets Unidad: 4 Laboratorio de Programación Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Indice Introducción CGI Servlets: concepto, caracteristicas Servlets Vs. CGI Ciclo

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS CICLO: 02/ 2012 GUIA DE LABORATORIO #7 Nombre de la UTILIZACIÓN DE PLANTILLAS Practica: Lugar de CENTRO DE COMPUTO Ejecución: Tiempo Estimado: 3

Más detalles

CAPÍTULO 14. DESARROLLO

CAPÍTULO 14. DESARROLLO CAPÍTULO 14. DESARROLLO DE SISTEMAS ESPECÍFICOS 1. Introducción En los últimos años han aparecido multitud de nuevas plataformas para desarrollar aplicaciones y ponerlas en explotación. En este capítulos

Más detalles

Diplomado Java Web Programming with Servlets, JSP, JSF & Ajax

Diplomado Java Web Programming with Servlets, JSP, JSF & Ajax Diplomado Java Web Programming with Servlets, JSP, JSF & Ajax Descripción: Por nuestra experiencia de más de 11 años enseñando Java y pioneros en este tipo de Diplomados creamos este entrenamiento. Nuestro

Más detalles

NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets. ISIS1206 Estructuras de Datos http://cupi2.uniandes.edu.

NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets. ISIS1206 Estructuras de Datos http://cupi2.uniandes.edu. 1 NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets 2 Agenda Protocolo HTTP Formas HTML Servlets 3 Protocolo HTTP Hypertext Transfer Protocol (HTTP) - 1990 Versión 1.1 Mecanismo

Más detalles

Conexión de Mysql con NetBeans

Conexión de Mysql con NetBeans Alumna: Keren Monge Cid Materia: Web Application Development Maestro: Alejandro S. Álvarez Cifuentes Grupo: 3CM2 2do Departamental Conexión de Mysql con NetBeans Objetivo Realizar un programa que realice

Más detalles

Capítulo III. Análisis y diseño.

Capítulo III. Análisis y diseño. Capítulo III. Análisis y diseño. 3.1 Análisis. El análisis es el intermediario entre los requisitos del sistema y el diseño, esta sección definiremos el análisis con una serie de modelos técnicos del sistema,

Más detalles

Agosto. Un primer JSP. Guía rápida. [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / j a v a. p h p ]

Agosto. Un primer JSP. Guía rápida. [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / j a v a. p h p ] Agosto 09 Un primer JSP Guía rápida [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / j a v a. p h p ] Un Primer JSP Guía rápida Este documento te guiará por los primeros pasos para desarrollar

Más detalles

Programación Hipermedia I

Programación Hipermedia I Programación Hipermedia I Práctica 5: JavaScript 1. Objetivos Aprender el lenguaje de programación JavaScript. Aprender a manejar el DOM de una página web para acceder a su contenido. Aprender a validar

Más detalles

El Internet tuvo origen en los Estados Unidos de Norte América cuando en un proyecto

El Internet tuvo origen en los Estados Unidos de Norte América cuando en un proyecto 2 Marco teórico 2.1 Internet 2.1.1 Breve historia El Internet tuvo origen en los Estados Unidos de Norte América cuando en un proyecto realizado por la Agencia de Investigación Avanzados de Defensa (DARPA)

Más detalles

Capítulo IV. Implementación.

Capítulo IV. Implementación. Capítulo IV. Implementación. 4.1 Instalación. La implementación del sistema comienza con la instalación de las herramientas y tecnologías a utilizar. Empezamos instalando el contenedor web que nos ayudara

Más detalles

Objetivo de aprendizaje del tema

Objetivo de aprendizaje del tema Computación II Tema 14. Java Server Pages (JSP) Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Ejemplificar la manera de desarrollar aplicaciones i Java EE usando páginas JSP. Describir

Más detalles

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM Ficha Técnica Categoría Programación Contenido del Pack - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM Sinopsis Java fue desarrollado por la compañía Sun Microsystems como una tecnología capaz

Más detalles

Tutorial Web Dinámica con Servlets y JSP Sesion 3

Tutorial Web Dinámica con Servlets y JSP Sesion 3 Tutorial Web Dinámica con Servlets y JSP Sesion 3 1. Eclipse Plataforma Web Tool Eclipse WTP proporciona herramientas para desarrollar aplicaciones web estándar Java y aplicaciones Java EE. Artefactos

Más detalles

5.4 Caso de estudio: diseño e implementación de la capa modelo de MiniPortal con EJB. Tipos de EJBs y patrones usados

5.4 Caso de estudio: diseño e implementación de la capa modelo de MiniPortal con EJB. Tipos de EJBs y patrones usados 5.4 Caso de estudio: diseño e implementación de la capa modelo de MiniPortal con EJB. Tipos de EJBs y patrones usados Introducción Qué tipos de EJBs ilustra MiniPortal? Entity Beans CMP (UserProfile) SLSBs

Más detalles

PROGRAMACIÓN JEE CON SERVLETS

PROGRAMACIÓN JEE CON SERVLETS INTRODUCCIÓN A LOS SERVLETS PROGRAMACIÓN JEE CON SERVLETS Los Servlets son clases Java que se ejecutan en un servidor de aplicación, para contestar a las peticiones de los clientes. Los Servlets no se

Más detalles

Identidad Corporativa de ICM 1 TABLA DE CONTENIDO... 2 2 INTRODUCCIÓN... 3 3 COMPONENTES NECESARIOS... 3

Identidad Corporativa de ICM 1 TABLA DE CONTENIDO... 2 2 INTRODUCCIÓN... 3 3 COMPONENTES NECESARIOS... 3 Uso de la librería DWR en aplicaciones ICM Área de Arquitectura de Aplicaciones 1 TABLA DE CONTENIDO 1 TABLA DE CONTENIDO... 2 2 INTRODUCCIÓN... 3 3 COMPONENTES NECESARIOS... 3 3.1 Librería DWR...3 3.1.1

Más detalles

PASO 1: Creamos un nuevo proyecto en NetBeans. Nos vamos a File y pulsamos sobre New Project

PASO 1: Creamos un nuevo proyecto en NetBeans. Nos vamos a File y pulsamos sobre New Project PASO 1: Creamos un nuevo proyecto en NetBeans. Nos vamos a File y pulsamos sobre New Project PASO 2: En categorías seleccionamos Java Web y en projects Web Application. PASO 3: En el siguiente paso debemos

Más detalles

Taller de Sistemas de Información 2. Desarrollo Web

Taller de Sistemas de Información 2. Desarrollo Web Taller de Sistemas de Información 2 Desarrollo Web Como funciona la web? Cuando navegamos la web, queremos acceder a un documento en algún lugar (de la web), para el cual disponemos de una URL (su dirección)

Más detalles

4. CODIFICACIÓN. Previo a la codificación además de instalar las respectivas herramientas es. importante tenerlas bien configuradas.

4. CODIFICACIÓN. Previo a la codificación además de instalar las respectivas herramientas es. importante tenerlas bien configuradas. 4. CODIFICACIÓN 4.1 Instalación Previo a la codificación además de instalar las respectivas herramientas es importante tenerlas bien configuradas. Instalamos Lenguaje de programación Java TM 2 Platform

Más detalles

Arquitectura J2EE para aplicaciones web. Aplicaciones web con JSP. Arquitectura J2EE: Capa de Acceso Web. Arquitectura J2EE: Capa Cliente

Arquitectura J2EE para aplicaciones web. Aplicaciones web con JSP. Arquitectura J2EE: Capa de Acceso Web. Arquitectura J2EE: Capa Cliente Aplicaciones web con JSP Arquitectura J2EE para aplicaciones web Aplicación Applet HTML Cliente Servidor web JSP Servlet Web EJB Java Beans Lógica Negocio Otras BDs, ERPs etc BD Oracle Datos Cliente Servidor(es)

Más detalles

Elementos sintácticos de una JSP.

Elementos sintácticos de una JSP. 1 JSP's Una JSP es un documento de texto parecido a HTML que describe como procesar una petición para crear una respuesta. Permiten separar la generación de interfaz de usuario (HTML) de la lógica de negocio.

Más detalles

Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, 2006. ILI 258 Departamento de Informática Universidad Técnica Federico Santa María

Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, 2006. ILI 258 Departamento de Informática Universidad Técnica Federico Santa María Nicolás Troncoso Carrère ILI 258 Departamento de Informática Universidad Técnica Federico Santa María Valparaíso, 2006 1 2 3 Porqué paginas dinamicas? Confirmacion de suscripciones. Contenido generado

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

Integración Capa Web de pojo-miniportal (1)

Integración Capa Web de pojo-miniportal (1) Integración Capa Web de pojo-miniportal (1) 1. Cambiar tipo de proyecto maven de "JAR" a "WAR 2. Añadir dependencias del API de Tapestry 3. Añadir configuración del plugin de Jetty al pom.xml 4. Añadir

Más detalles

INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA

INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA Jaime Fernández ndez Mayo 2006 Índice Java Aplicaciones web Servlets JSP Servidores de aplicaciones IDE`s Ejemplo Historia Java Lenguaje orientado

Más detalles

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010)

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010) Desarrollo de aplicaciones Web con Servlets y JSP Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010) Jesús Arias Fisteus jaf@it.uc3m.es Desarrollo de aplicaciones Web con Servlets y JSP p. 1 URIs

Más detalles

JavaBeans y JavaServer Pages: Guía rápida. Manuel Urueña

JavaBeans y JavaServer Pages: Guía rápida. Manuel Urueña JavaBeans y JavaServer Pages: Guía rápida Manuel Urueña 2 de diciembre de 2002 1. JavaBeans Los JavaBeans se idearon como un mecanismo para diseñar componentes, generalmente de tipo gráfico, que pudiesen

Más detalles

J2EE Java 2 Enterprise Edition

J2EE Java 2 Enterprise Edition J2EE Java 2 Enterprise Edition Es el framework oficial de Java para la construcción de aplicaciones empresariales Es una tecnología basada en componentes Ofrece un modelo para el desarrollo de aplicaciones

Más detalles

ATLAS MANUAL DE USUARIO COMPONENTE INPUT IBAN

ATLAS MANUAL DE USUARIO COMPONENTE INPUT IBAN ATLAS MANUAL DE USUARIO COMPONENTE INPUT IBAN Versión 1.1 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de usuario Componente

Más detalles

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado Centro de Capacitación en Tecnologías de la Información Desarrollo de Objetivo Dotar al alumno de la metodología y los fundamentos de la programación en Java usando la plataforma J2SE (Java 2 Standard

Más detalles

FRAMEWORK 2 - ARQUITECTURA APLICACIONES WEB

FRAMEWORK 2 - ARQUITECTURA APLICACIONES WEB FRAMEWORK 2 - ARQUITECTURA APLICACIONES WEB Versión 1.1 Septiembre 2008 Página: 1 CONTROL DE CAMBIOS Fecha Versión Cambios 21/05/2008 1.0 Primera versión 11/09/2008 1.1 Se eliminan las referencias a Remote

Más detalles

Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages)

Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages) Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages) Autor: José Vicente Núñez Zuleta (jose@eud.com, josevnz@yahoo.com) Puntos a tratar Qué es JDBC? Arquitectura de un

Más detalles

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

USANDO SERVLETS EN UN SERVIDOR WEB RESIN USANDO SERVLETS EN UN SERVIDOR WEB RESIN Servidor Web Resin Resin es un servidor web que permite no solo despachar un página web, sino aplicaciones web construidos bajo la arquitectura J2EE, así como el

Más detalles

(de http://www.coreservlets.com/, documentos 09-JSP-Intro.pdf y 10-JSP-Scripting- Elements.pdf) Página 296

(de http://www.coreservlets.com/, documentos 09-JSP-Intro.pdf y 10-JSP-Scripting- Elements.pdf) Página 296 13. APÉNDICE 7. JAVA SERVER PAGES (JSP) JJ.. RAMÓN GARCÍÍA ESSCRIIVÁ ((DSIIC -- UPV)) (de http://www.coreservlets.com/, documentos 09-JSP-Intro.pdf y 10-JSP-Scripting- Elements.pdf) Página 296 13.1. INTRODUCCIÓN

Más detalles

Curso de JavaServer Faces

Curso de JavaServer Faces 1 Una JavaBean es una clase Java que sigue las siguientes convenciones: Constructor vacío Atributos de clase privados Por cada atributo, se crean los métodos getters y setters El Objetivo de los Managed

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

Práctica 5: Servidor web concurrente en Java

Práctica 5: Servidor web concurrente en Java Práctica 5: Servidor web concurrente en Java Esta práctica pretende familiarizar al alumno con la programación de servidores que emplean sockets TCP. Para ello partiremos del servidor web básico visto

Más detalles

J2EE TIENDAVIRTUAL APPLICATION FRAMEWORK

J2EE TIENDAVIRTUAL APPLICATION FRAMEWORK J2EE TIENDAVIRTUAL APPLICATION FRAMEWORK Memòria del Projecte Fi de Carrera d'enginyeria en Informàtica realitzat per Eduardo Varga Laguna i dirigit per Joan Serra Sagristà Bellaterra,...de......de 200...

Más detalles

II Curso Online JAVA-J2EE

II Curso Online JAVA-J2EE II Curso Online JAVA-J2EE TEMA 4 Desarrollo web con las tecnologías J2EE Autor: PCYTA / Centro de Excelencia de Software Libre de Castilla-La Mancha Versión: 1.0 Fecha: Revisado 07-02-2008 11:46 Licencia:

Más detalles

Clase Java que implementa un modelo de programación peticiónrespuesta. Puede usarse para procesar cualquier tipo de petición

Clase Java que implementa un modelo de programación peticiónrespuesta. Puede usarse para procesar cualquier tipo de petición Java EE Servlets Aplicaciones Web/Sistemas Web Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense Madrid Material bajo licencia Creative

Más detalles

3.3 Parsers SAX con JAXP

3.3 Parsers SAX con JAXP 3.3 Parsers SAX con JAXP Introducción (1) Un parser XML permite comprobar que el documento está bien formado y acceder a los datos Si además el parser es validante, permite validar el documento (usando

Más detalles

FRAMEWORK SPRING EN UNA APLICACIÓN WEB

FRAMEWORK SPRING EN UNA APLICACIÓN WEB 3CM2 FRAMEWORK SPRING EN UNA APLICACIÓN WEB WEB APPLICATION DEVELOPMENT 1. INTRODUCCIÓN El Spring Framework es un popular marco de aplicaciones de código abierto que puede hacer más fácil el desarrollo

Más detalles

USO DE CRYSTALREPORTS 10 EN JAVA Versión 1.0

USO DE CRYSTALREPORTS 10 EN JAVA Versión 1.0 USO DE CRYSTALREPORTS 10 EN JAVA Versión 1.0 Agosto 2007 Página: 1 INDICE 1 INTRODUCCION... 3 2 CREACIÓN DEL INFORME... 4 3 LIBRERÍA CrystalReports2_0... 7 4 CrystalReportAccion... 7 4.1 Ejemplo genérico...

Más detalles

U IVERSIDAD CARLOS III DE MADRID. Escuela Politécnica Superior. Ingeniería Técnica de Telecomunicación: Telemática

U IVERSIDAD CARLOS III DE MADRID. Escuela Politécnica Superior. Ingeniería Técnica de Telecomunicación: Telemática U IVERSIDAD CARLOS III DE MADRID Escuela Politécnica Superior Ingeniería Técnica de Telecomunicación: Telemática PROYECTO FIN DE CARRERA Diseño e implementación de una tienda electrónica mediante STRUTS

Más detalles

Técnico Superior en Programación con Java SE Standard Edition

Técnico Superior en Programación con Java SE Standard Edition Código: M087_04 Técnico Superior en Programación con Java SE Standard Edition Modalidad: Distancia Duración: 120 horas Objetivos: Este pack de materiales formativos proporcionará al alumnado la base que

Más detalles

PROGRAMACIÓN VISUAL ANALISTA PROGRAMADOR UNIVERSITARIO FAC DE INGENIERIA - PLAN 2008 AÑO 2010

PROGRAMACIÓN VISUAL ANALISTA PROGRAMADOR UNIVERSITARIO FAC DE INGENIERIA - PLAN 2008 AÑO 2010 ARQUITECTURA J2EE Principios de Funcionamiento de Aplicaciones WEB El HypertText Markup Language (HTML) se concibió como una herramienta fundamental de Internet para la creación de páginas WEB. El concepto

Más detalles

JSP(JAVA SERVER PAGES)

JSP(JAVA SERVER PAGES) JSP(JAVA SERVER PAGES) Introducción En la actualidad, la mayoría de los sitios Web quieren mostrar contenido dinámico basado en el usuario y en la sesión. La mayor parte del contenido, tal como imágenes,

Más detalles

Curso: Programación con JAVA SE Estándar Edition.

Curso: Programación con JAVA SE Estándar Edition. Curso: Programación con JAVA SE Estándar Edition. Código: 1062 Familia Profesional: Programación. Acreditación: Formación reconocida a través de vías no formales Modalidad: Distancia Duración: 150 horas

Más detalles

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios Diplomado Java Descripción El lenguaje de programación Java es uno de los más utilizados hoy en día. Su potencia, simplicidad, funcionalidad y capacidad hacen que este lenguaje sea una de las herramientas

Más detalles

javax.servlet.genericservlet javax.servlet.http.httpservlet MiServlet

javax.servlet.genericservlet javax.servlet.http.httpservlet MiServlet Lectura 14. Servlets Un Servlet es un programa que se ejecuta en un servidor Web. Los clientes pueden invocarlo utilizando el protocolo HTTP. Comparativamente, así como los applet son ejecutados y cargados

Más detalles

Introducción al desarrollo web (idesweb)

Introducción al desarrollo web (idesweb) Introducción al desarrollo web (idesweb) Práctica 3: CSS, maquetación y estilos alternativos 1. Objetivos Aprender a maquetar una página web con CSS. Aprender a emplear estilos alternativos en una página

Más detalles

Ejercicios de AJAX y REST

Ejercicios de AJAX y REST Índice 1 AJAX (1 punto)... 2 2 Servicios REST (1.5 puntos)... 3 3 Gestión de errores en servicios REST (0.5 puntos)...5 1. AJAX (1 punto) Vamos a cambiar la búsqueda de usuarios para que funcione mediante

Más detalles

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat 4.1.12.

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat 4.1.12. Unidad 7 Servlets 7.1 Marco teórico Lo que permite que ordenadores remotos con procesadores y sistemas operativos diferentes se entiendan y en definitiva que Internet funcione como lo hace en la actualidad,

Más detalles

Curso de gráficos con Java y OpenFlashChart para aplicaciones web. Manual del alumno

Curso de gráficos con Java y OpenFlashChart para aplicaciones web. Manual del alumno Curso de gráficos con Java y OpenFlashChart para aplicaciones web Manual del alumno Ing. Cedric Simon Tel: 2268 0974 Cel: 8888 2387 Email: c e d r i c @ s o l u c i o n j a v a. c o m Web: www.solucionjava.com

Más detalles

TEMARIO. 4-Servlet Definición de servlet El Web Container y el ciclo de vida de los servlets El ciclo request- response.

TEMARIO. 4-Servlet Definición de servlet El Web Container y el ciclo de vida de los servlets El ciclo request- response. TEMARIO 1-Introducción Entorno de Desarrollo Integrado ( que es, para que nos sirve, distintos tipos) Presentación del Netbeans (descarga, instalación, aspectos fundamentales.) Principales Servidores de

Más detalles

ATLAS MANUAL DE USUARIO SERVICIO DE TRAZAS

ATLAS MANUAL DE USUARIO SERVICIO DE TRAZAS ATLAS MANUAL DE USUARIO SERVICIO DE TRAZAS Versión 1.4 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de Usuario NORMATIVA

Más detalles

Restaurant-OnLine. Juan Carlos Serra Diaz ETIG. Verónica Peña Pastor

Restaurant-OnLine. Juan Carlos Serra Diaz ETIG. Verónica Peña Pastor Restaurant-OnLine Juan Carlos Serra Diaz ETIG Verónica Peña Pastor 13 de enero de 2009 TFC Restaurant-OnLine P á g i n a 2 Dedicatoria Ante todo destacar que aunque este TFC haya sido fruto de mi esfuerzo,

Más detalles