Sesion 03
-
Upload
haybert-escobedo-neyra -
Category
Documents
-
view
53 -
download
1
Transcript of Sesion 03
Ing. Haybert Escobedo Neyra [email protected]
Lenguaje de Programacin II
SERVLEST YJSP(PARTE II)
TEMARIO
Java Server Pages Eventos (Listener)
CONTENIDO
Semana 03
Java Server Page JSP
Un JSP es un servlet; por lo tanto, es un componente web que se encuentra en el lado del servidor. Un JSP tiene cdigo Java dentro del cdigo en HTML (embedded); a diferencia de los Servlets que pueden generar HTML desde cdigo Java. DEFINICIN
Un JSP es un servlet; por lo tanto, es un componente web que se encuentra en el lado del servidor. Un JSP tiene cdigo Java dentro del cdigo en HTML (embedded); a diferencia de los Servlets que pueden generar HTML desde cdigo Java. DEFINICIN
Ejemplo Saludo Hola
CICLO DE VIDAD DE UN JSP
Antes de poder ser ejecutado, un JSP debe ser convertido en un SERVLET de Java. Esto es hecho en dos etapas: El texto JSP es traducido en cdigo Java. El cdigo java es compilado en SERVLET.
CICLO DE VIDAD DE UN JSP
El SERVLET resultante procesa las peticiones http. El proceso de traducido y compilado es realizado una sola vez antes de procesar la primera peticin http.(Cont)
Luego, el SERVLET resultante tiene el mismo ciclo de vida que cualquier SERVLET.
Las directivas JSP son usadas para definir informacin al traductor java acerca de la pgina. DIRECTIVAS JSP La sintaxis es la siguiente:
DIRECTIVAS INCLUDE
Se usa para definir el contenido de otro archivo en el JSP Ejemplo: Mi primer loguito
DIRECTIVAS PAGE
Se usa para definir las caractersticas de las cuales va a depender la pgina. La directiva aplica a todo el JSP incluso los archivos incluidos con la directiva include.
DIRECTIVAS PAGE INFO
Define una cadena de texto que es ubicada en el mtodo Servlet.getServletInfo() del cdigo traducido. Ejemplo:
DIRECTIVAS PAGE IMPORT
Se usa para importar una lista de nombres de paquetes separados por comas. Ejemplo:
DIRECTIVAS PAGE ERRORPAGE
Se usa para re direccionar un cliente a un URL especfico cuando ocurre una excepcin que no ha sido capturada en la pgina. Ejemplo:
DIRECTIVAS PAGE ISERRORPAGE
Se usa para indicar si la pgina es un target vlido (destino) de una directiva page errorPage. El valor por defecto es false. Ejemplo:
DeclarationsJSP SCRIPTING
ExpressionsScriptlets
Son utilizadas para declarar mtodos y variables de instancia en el servlet JSP. DECLARATIONS Sintaxis: Ejemplo:
Se utilizan para escribir cdigo Java en el JSP. Sintaxis: SCRIPLETS Ejemplo: Sr. Srta.
EXPRESSIONS
Son para incluir directamente dentro de la salida de la pgina cadenas (Strings), que son el resultado de evaluar una expresin de cdigo Java y luego convertirla en una cadena.
Sintaxis: Ejemplo:La fecha actual es
INTERACCIN CON UN JSPa) Un JSP puede invocado por un URL ser
http://nombreservidor/aplicacionweb/nombrejsp .jspString miRuta = /jsps/consultas.jsp; RequestDispatcher rd = getServletContext().getRequestDispatcher(miRuta ); Rd.forward(request,response); texto texto
b) Un JSP puede ser invocado desde un servlet usando el mtodo forward del objeto RequestDispatcher. c) Un Servlet o un JSP pueden ser invocados desde un JSP usando la etiqueta o la etiqueta .
DETECCIN DE ERRORES EN EL JSP (Categoras)
JSP Translate.Se genera un error si se escribe mal o se falla al usar los atributos de las etiquetas de JSP.
Servlet Compilation.Si se falla al escribir cdigo Java o cuando se omite alguna directiva de pgina que sea obligatoria.
SERVIDOR WEB
HTML Presentation.Si algn elemento HTML est definido incorrectamente.
CLIENTE BROWSER
OBJETOS IMPLICITOS EN EL JSP
Objeto request. Contiene la informacin de peticin del actual HTTP request.
Objeto session. Contiene la informacin de la sesin del cliente. Es una instancia de la clase javax.servlet.http.HttpSession.Objeto out. Es usado para las salidas de texto que se quieran incluir en la pgina.
Objeto Application. Contiene informacin del contexto de todos los componentes web de la misma aplicacin web. Es una instancia de la clase javax.servlet.ServletContext
1.
Request Scope. Se constituye en la va ms adecuada para que un servlet pase referencias de objetos al JSP. (HttpServletRequest ) actual. Session Scope. Se puede acceder desde Servlets y pginas JSP que estn procesando peticiones que se encuentran en la misma sesin. (HttpSession) actual. Application Scope. Se puede acceder desde Servlets y pginas JSP que estn procesando peticiones que se encuentran en la misma aplicacin web. (ServletContext) actual. Se usan: setAttribute(String,Object) para cargar (setear) el objeto en el request, sesion y en el contexto getAttribute(String) para recuperar el objeto
ATRIBUTOS DEL SCOPE (AMBITO)
2.
3.
OBJETOS IMPLICITOS EN UN JSP
EVENTOS EN APLICACION WEB JEE
Se produce cuando su aplicacin web se carga por primera vez y comenz por el contenedor de Servlets.
EL cierre se produce cuando la aplicacin web se cierra. El perodo de sesiones se produce en la creacin de una nueva sesin cada vez que se crea en el servidor. De forma similar se origina con la invalidacin de una sesin cada vez que se anula.
Inicio y apagado de una aplicacin
La creacin y la invalidacin de sesiones
Para hacer uso de las aplicaciones web y eventos para hacer algo til, se tienen que crear y hacer uso de las clases oyentes.
CLASES OYENTES
javax.servlet.ServletContextListener La implementacin de esta interfaz permite escuchar la creacin o destruccin del contexto. javax.servlet.http.HttpSessionListener
ServletContextListener public void
contextInitialized
Para hacer uso de las aplicaciones web y eventos para hacer algo til, se tienen que crear y hacer uso de las clases oyentes.
CLASES OYENTES
javax.servlet.ServletContextListener La implementacin de esta interfaz permite escuchar la creacin o destruccin del contexto.
javax.servlet.http.HttpSessionListener La implementacin de esta interfaz permite escuchar la creacin de una sesin.
HttpSessionListenerjavax.servlet.ServletContextListener de importacin; javax.servlet.ServletContextEvent de importacin;
Ejemplo
clase pblica ApplicationWatch implementa ServletContextListener { public static applicationInitialized largo = 0L;/ * Aplicacin de inicio del evento * / public void contextInitialized (ServletContextEvent ce) { applicationInitialized = System.currentTimeMillis (); } / * Aplicacin del evento de apagado * / public void contextDestroyed (ServletContextEvent ce) {} }
ServletContextListener:/ * Expediente: SessionCounter.java * / javax.servlet.http.HttpSessionListener de importacin; javax.servlet.http.HttpSessionEvent de importacin;
Ejemplo
clase pblica SessionCounter implementa HttpSessionListener { private static int activeSessions = 0; / * Creacin de eventos de sesin * / public void sessionCreated (HttpSessionEvent se) { activeSessions + +; } / * Sesin de invalidacin del evento * / public void sessionDestroyed (HttpSessionEvent se) { if (activeSessions> 0) activeSessions -; } public static int getActiveSessions () { activeSessions retorno; } }
REGISTROS DE LAS CLASES OYENTES EN EL WEB.XML
Para indicarle al servidor de aplicaciones acerca de estas clases oyentes, utilizamos el archivo web.xml Lo hacemos poniendo classpath de las clases oyentes en el archivo web.xml usando las etiquetas
CLASES OYENTES EN EL WEB.XML
Ejemplo
com.stardeveloper.web.listener.SessionCounter com.stardeveloper.web.listener.ApplicationWatch
FILTROS EN APLICACION WEB
Son componentes que pueden utilizarse para analizar y/o transformar tanto los datos solicitados como los enviados en una peticin web.
Pueden trabajar en conjunto de pginas jsp o servlets.
FILTROS DE UNA APLICACION WEB (Cont.)
FILTROS EN APLICACIN WEB JEE
a) Ventajas
Son componentes reutilizables. Son parte del estndar. Son fciles de implementar. Sencillez para incorporar y retirar. Gran variedad de servicios. Control de acceso a la aplicacin. Compresin de datos y Cache. Transformaciones XML / HTML. Procesamiento de imgenes. Auditora/registro de actividades. Virtualizacin de recursos. Cifrado de datos.
b) Usos comunes
FUNCIONAMIENTO DE LOS FILTROS
Cada filtro responde a un Servlet o un URL que represente uno o ms recursos
FILTROS EN APLICACION WEB JEE (Cont.)
La interfaz javax.servlet.FilterConfig Define cuatro mtodos: getFilterName(): Retorna el nombre asociado al filtro en la configuracin en un String getInitParameter(String): Retorna el valor de un parmetro de configuracin getInitParameterNames(): Retorna los nombres de los parmetros de configuracin. getServletContext(): Retorna la referencia al ServletContext en el que trabajar el filtro
FILTROS EN APLICACION WEB JEE (Cont.)
Define un nico mtodo: doFilter() throws ServletException El mtodo doFilter recibe argumentos ServletRequest ServletResponse. como y
Es invocado por el contenedor cuando el filtro forma parte de la cadena creada ante la peticin/respuesta de un recurso web.
FILTRO
Ejemplo
FILTRO (Cont)
Ejemplo
FILTRO (Cont)
Ejemplo
Filtro de Control de Credenciales (FCC). Problema: Un grupo especfico de usuarios de una aplicacin web requiere obtener sus credenciales desde dos repositorios diferentes; el resto de los usuarios solo requiere uno. Propsito: Asegurar la obtencin de ambas credenciales slo en caso de que el usuario pertenezca al grupo que lo requiere.
Ejemplo: Control de Credenciales
Por qu un filtro? Premisas de trabajo:Ejemplo: Control de Credenciales (Cont.)
Debe ser desarrollado en Java. La seguridad de ser controlada por el contenedor. La solucin debe ser fcil de implantar y retirar sin afectar el funcionamiento de la aplicacin. La solucin debe ser reutilizable.
Ejemplo: Control de Credenciales (Cont.)
Acciones realizadas por el FCC Verifica si el usuario que intenta iniciar sesin pertenece al grupo de control. Si pertenece al grupo, desva la peticin a una segunda pgina de login. Si no, contina la cadena. Intenta obtener las credenciales contra el segundo repositorio. Si tiene xito, la credencial se almacena para uso futuro en la aplicacin. Si falla, lo enva al inicio. Pasa el control a la cadena de filtros.Ejemplo: Control de Credenciales (Cont.)
Ejemplo: Control de Credenciales (Cont.)
Ejemplo: Control de Credenciales (Cont.)