4.4 Tutorial de JSP 2.0, JSTL y Apache Struts
|
|
- Josefa Cáceres Medina
- hace 8 años
- Vistas:
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=" xmlns:xsi=" xsi:schemalocation=" 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" " <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" " 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)
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 detallesDESARROLLO 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 detallesLecció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 detallesEspecialista 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 detallesTema 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 detallesSistemas 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 detallesRequisitos. 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 detallesFUNCIONAMIENTO: 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 detallesDepartamento de Lenguajes y Sistemas Informáticos
Departamento de Lenguajes escuela técnica superior de ingeniería informática Grupo de Ingeniería a del Software Febrero 2007 Versión original: Autor (mes 200?) Última revisión: Autor (mes 200?); descripción
Más detallesISJu: 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 detallesCurso 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 detallesLa 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 detallesJava 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 detallesDIPLOMATURA 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 detallesIntroducció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 detallesCurso 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 detallesSistemas 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 detallesConfiguración servidor Tomcat
Apuntes de J2EE Configuración servidor Tomcat Uploaded by Ingteleco http://ingteleco.webcindario.com ingtelecoweb@hotmail.com La dirección URL puede sufrir modificaciones en el futuro. Si no funciona contacta
Más detallesAgosto. 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 detallesEXTENSIÓN DE UML PARA APLICACIONES WEB
EXTENSIÓN DE UML PARA APLICACIONES WEB 1. Descripción Esta extensión de UML define un conjunto de estereotipos, valores etiquetados y restricciones que nos permiten modelar aplicaciones web. Los estereotipos
Más detallesLibrerí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 detallesLa plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.
PLANTILLAS EN PHP El concepto de plantilla, es un criterio del desarrollo web que propone optimizar la cantidad de documentos HTML que se usan en el desarrollo de un sitio web. A lo largo de la navegación
Más detallesIntroducció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 detallesStruts. Í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 detallesJava 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 detalles4. 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 detallesDesarrollo de Aplicaciones Web con JAVA: J2EE y Struts
Temario Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts Abril 2007 1. Introducción Se describe a continuación de forma detallada el programa del curso Desarrollo de Aplicaciones Web con Java: J2EE
Más detallesPráctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación
Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación Sistemas de Información Grado de Informática Dpto. de Informática e Ingeniería de Sistemas, Universidad
Más detallesEjercicios 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 detallesFRAMEWORK 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 detallesManual de uso del Taglib de Template Saga
1 Manual de uso del Taglib de Template Saga www.sagasoluciones.com info@sagasoluciones.com C/ Salado 11 Local 10. 41010 Sevilla T. + 34 954 45 72 75 F. + 34 954 45 75 72 CONTROL DEL DOCUMENTO Realizado
Más detallesLaboratorio 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 detallesUnidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.
Unidad II Metodología de Solución de Problemas 2.1 Descripción del problema (enunciado). Este aspecto nos indica describir de manera objetiva la realidad del problema que se esta investigando. En la descripción
Más detallesFigura 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 detallesCapitulo III. Diseño del Sistema.
Capitulo III. Diseño del Sistema. Para el desarrollo del sistema en la presente tesis se utilizo el paradigma orientado a objetos utilizando el lenguaje Java en su versión 1.2. Por medio de este lenguaje
Más detallesContiene 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 detallesKaldeera Advanced Forms 2009 Guía del usuario
Kaldeera Advanced Forms 2009 Guía del usuario Indice Usando Kaldeera Advanced Forms 2009... 3 Accediendo a la página de configuración... 3 Activando o desactivando la funcionalidad de Kaldeera Advanced
Más detallesSeguridad de la aplicación para servlets y JSP (página activas java)
Seguridad de la aplicación para servlets y JSP (página activas java) Autenticación de Servlets (java) Usuarios y roles. Autenticación declarativa. Portabilidad Tipos de autenticación Básica. Digest. Basada
Más detallesRESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Más detallesATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS
ATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS Versión 1.0 Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Servicio de SMS Cliente NORMATIVA ATLAS Arquitectura
Más detallesUSANDO 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 detalles4.3 Problemas con servlets y páginas JSP. Patrones
4.3 Problemas con servlets y páginas JSP. Patrones Situación a la que queremos llegar Poder usar directamente herramientas de diseño de páginas web para implementar la vista Las actualizaciones al aspecto
Más detallesIntegració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 detallesDossier de prácticas
Dossier de prácticas Intranet / Extranet Màster d Enginyeria del Software Desenvolupament d aplicacions sobre Internet Fundació Politècnica de Catalunya Jaume Moral Ros Albert Obiols Vives 1 Dossier de
Más detallesManual del Protocolo XML-RPC de Mensajería Negocios
Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...
Más detallesARQUITECTUA DE M2M MIGUEL ÁLVAREZ Y CLARA HERRERO. Documento inicial
Título ARQUITECTUA DE M2M Proyecto Monkey to Monkey ( M 2 M ) Equipo Proyectos Informáticos Versión 1.0 Código PLAN_M2M_2012_04_01 Fecha 19/04/2012 Autores MIGUEL ÁLVAREZ Y CLARA HERRERO Estado Documento
Más detallesREDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS
REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS Servicio DNS - 1 - Servicio DNS...- 3 - Definición... - 3 - Instalación... - 5 - Configuración del Servidor DNS...- 10 - - 2 - Servicio DNS Definición
Más detallesenvía al browser. El browser despliega el archivo.
SERVLETS Dr. Raúl Perez Páginas web estáticas Como se despliega una página web en un browser Normalmente la página se crea usando HTML y se almacena como un archivo en el servidor de web. El usuario escribe
Más detallesCapítulo 1 Documentos HTML5
Capítulo 1 Documentos HTML5 1.1 Componentes básicos HTML5 provee básicamente tres características: estructura, estilo y funcionalidad. Nunca fue declarado oficialmente pero, incluso cuando algunas APIs
Más detallesATLAS 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 detallesStruts. Sesión 1. Introducción a Struts: el controlador y las acciones. Especialista Universitario Java Enterprise
Struts Sesión 1. Introducción a Struts: el controlador y las acciones 2010-2011 Depto. Ciencia de la Computación e IA Indice Introducción a Struts y a MVC Instalación de Struts El ciclo de control en Struts
Más detallesCurso PHP Módulo 1 R-Luis
Lenguaje PHP Introducción Archivos HTML y PHP: Crear un archivo php es tan sencillo como cambiarle la extensión a un archivo html, por ejemplo podemos pasar de index.html a index.php sin ningún inconveniente.
Más detallesNIVEL 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 detallesConexió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 detallesIntroducción a Java LSUB. 15 de enero de 2015 GSYC
Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada
Más detallesUn 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 detallesRedes de área local: Aplicaciones y servicios WINDOWS
Redes de área local: Aplicaciones y servicios WINDOWS 4. Servidor DNS 1 Índice Definición de Servidor DNS... 3 Instalación del Servidor DNS... 5 Configuración del Servidor DNS... 8 2 Definición de Servidor
Más detallesDesarrollo de Servicios Web con JBuilder
Artículos técnicos Grupo Danysoft: Desarrollo de Servicios Web con JBuilder Segunda parte Oscar Cristobal Ruiz Departamento Java Equipo Grupo Danysoft Enero 2003 - (902) 123146 www.danysoft.com Desarrollo
Más detallesRUEDA TORRES DULCE CAROLINA 3CM2 JAX-WS WEB SERVICES WEB APPLICATION DEVELOPMENT
3CM2 JAX-WS WEB SERVICES WEB APPLICATION DEVELOPMENT 1. INTRODUCCIÓN En esta práctica se mostraran los fundamentos del uso de la IDE para desarrollar un servicio web JAX-WS. Después de crear el servicio
Más detallesATLAS MANUAL DE USUARIO COMPONENTE CODIGO DE BARRAS
ATLAS MANUAL DE USUARIO COMPONENTE CODIGO DE BARRAS Versión 1.3 Área de Aplicaciones Especiales y Arquitectura de Software 8 Hoja de Control Título Documento de Referencia Responsable Manual de Usuario
Más detallesCurso 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 detallesLicencia 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 detallesJSP 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 detallesLaboratorio 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 detallesProgramación páginas web. Servidor (PHP)
Programación páginas web. Servidor (PHP) Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte servidor con la tecnología PHP y el servidor de bases de datos MySQL.
Más detalles5.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 detallesATLAS MANUAL DE USUARIO ARBOL ACCESIBLE
ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE Versión 1.3 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de Usuario del NORMATIVA
Más detallesAPI de java. (http://download.oracle.com/javase/6/docs/api/) Guía de alumno Laboratorio 9. Recursos disponibles en moodle para este día.
PROGRAMACIÓN Laboratorio 9 Guía del Alumno 1 LABORATORIO 9: JAVA.IO - ENTRADA/SALIDA JAVA.NET - URL Versión:2013-05- 20 Conocimientos previos Temario visto en las clases de teoría. Se recomienda haber
Más detallesATLAS MANUAL DE USUARIO COMPONENTES JSF BUSINESS OBJECTS XI
ATLAS MANUAL DE USUARIO COMPONENTES JSF BUSINESS OBJECTS XI Versión 1.1 Área de Aplicaciones Especiales y Arquitectura de Software 9 Hoja de Control Título Documento de Referencia Responsable ICM Versión
Más detallesUso de excepciones en Java
Uso de excepciones en Java En Java, cuando se produce un error en un método, se lanza un objeto Throwable. Cualquier método que haya llamado al método puede capturar la excepción y tomar las medidas que
Más detallesInstalar y configurar W3 Total Cache
Instalar y configurar W3 Total Cache en WordPress Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com La velocidad de carga de una web influye mucho a la hora de mejorar el
Más detallesTUTORIAL DESARROLLO DE APLICACIONES PARA EVOLUTION CON MS ACCESS
TUTORIAL DESARROLLO DE APLICACIONES PARA EVOLUTION CON MS ACCESS 1 Introducción... 3 2 Despliegue de la aplicación de ejemplo... 3 2.1 Requisitos previos... 3 2.2 Despliegue de la aplicación... 3 3 Prueba
Más detallesStruts. Sesión 2: La vista en Struts. ActionForms y taglibs propias. Especialista Universitario Java Enterprise
Sesión 2: La vista en. ActionForms y taglibs propias Indice ActionForms. Ciclo de vida Usar ActionForms Las taglibs de. HTML y HTML-EL ActionForms Normalmente la acción toma los parámetros directamente
Más detallesTema 4: Diseño e Implementación de la Capa Web
Tema 4: Diseño e Implementación de la Capa Web Índice 4.1 Tutorial de Servlets y JSPs 4.2 Tutorial de Tapestry 4.3 Caso de Estudio: Diseño e Implementación de la Capa Web de MiniBank 4.4 Caso de estudio:
Más detallesA continuación se confeccionara un formulario para el ingreso de un nombre y un botón para el envío del dato ingresado al servidor:
FORMULARIOS BAJO HTML INTRODUCCION A FORMULARIOS Un formulario permite que el visitante al sitio cargue datos y sean enviados al servidor. Es el medio ideal para registrar comentarios del visitante sobre
Más detallesDiplomado 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 detallesPráctica de introducción a
Práctica de introducción a XML El trabajo consiste en una introducción al uso del lenguaje XML y su aplicación en documentos y sistemas de caracteristicas multimedia. 1.- Qué es XML? XML (extensible Markup
Más detallesMi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades:
Propósito del prototipo: Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades: 1º. Mostrar noticias y eventos propios del grupo de personas que administren la Web.
Más detallesSquipy v1.1. 0.-Introducción
Squipy v1.1 0.-Introducción Squipy es un sencillo proxy que permite filtrar y modificar los datos que se envían desde el navegador hacia un servidor web. El interfaz está en castellano y en inglés y su
Más detallesUniversidad Tecnológica del Valle del Mezquital. Desarrollo de Aplicaciones Web. Manual JSP
Universidad Tecnológica del Valle del Mezquital Desarrollo de Aplicaciones Web Manual JSP Presentado por: Amellaly Perez Ramirez Ana Maday Perez Montoya Eduardo Perez Ignacio Jairo Mohedano Mejia Maricela
Más detallesManual de Integrador.NET
Manual de Integrador.NET viafirma platform v3.5 ÍNDICE 1. INTRODUCCIÓN... 5 1.1. Objetivos... 5 1.2. Referencia... 5 2. GUÍA RÁPIDA... 5 2.1. Añadir las dependencias necesarias... 5 2.2. Página de acceso
Más detallesCAPÍ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 detallesSolución al Examen de Prácticas de Programación (Ingeniería Informática)
Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa
Más detallesCapítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable
Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)
Más detallesManual de Uso XML-Whois de Neubox. Manual del Sistema de XML Whois de Neubox Versión 9.12.4
Manual del Sistema de XML Whois de Neubox Versión 9.12.4 1 Índice Sección Página I. Introducción........ 3 II. Contenido del paquete............ 4 III. Instalación y uso....... 5 1. Cómo comprobar la plantilla......
Más detalles9. Objetos y clases. 9.1. Clases
Programación orientada a objetos con Java 103 9. Objetos y clases Objetivos: a) Presentar el concepto de objeto, clase, atributo, método e instancia b) Interpretar el código fuente de una aplicación Java
Más detallesEXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011
EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando
Más detallesIntroducción al lenguaje Java
Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno
Más detallesIntegració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" y actualizar la versión de Tapestry (5.0.18) en las dependencias 2. Añadir configuración del plugin de Jetty
Más detallesCurso de PHP con MySQL Gratis
Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este
Más detallesProgramación Orientada a Objetos con Java
Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la
Más detallesVAST: Manual de usuario. Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes
VAST: Manual de usuario Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes Índice general Índice general 2 1. Introducción 4 2. Representación intermedia del AST 5 2.1. Funcionamiento del VAST
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos
Más detallesValidació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 detallesPráctica 2: Instalación de un gestor de bases de datos relacionales y desarrollo de una aplicación Web con persistencia de datos
Práctica 2: Instalación de un gestor de bases de datos relacionales y desarrollo de una aplicación Web con persistencia de datos Sistemas de Información Grado de Informática Dpto. de Informática e Ingeniería
Más detallesJava Avanzado Facultad de Ingeniería. Escuela de computación.
2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 12 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus
Más detallesIdentidad 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 detallesDESARROLLO 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 detallesBases de Datos. Marta Elena Zorrilla Pantaleón Rafael Duque Medina DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN
Bases de Datos Tema 05. Proto-po de una aplicación de base de datos Marta Elena Zorrilla Pantaleón Rafael Duque Medina DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN Este tema se publica bajo Licencia:
Más detalles