Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Introducción a la arquitectura web – Java (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

Estructura de la aplicación Web
SubJAVA WEB

Monografias.com

Estructura de directorios
WEB-INF: Este directorio contiene la información que necesita el contenedor Web para iniciar la aplicación. No se puede acceder públicamente.
classes: Este directorio contiene a las clases Java compiladas.
lib: Contiene a las librerías adicionales que requiere el proyecto.
web.xml: Conocido como descriptor de despliegue de la aplicación Web. Todos los proyectos Web tienen este archivo.

Monografias.com

Descriptor web.xml
Archivo de aplicación web.
Contiene valores de configuración propios de una aplicación o módulo web.
Se registran los servlets, filters, la página de inicio, el tiempo máximo de expiración de una sesión, seguridad, entre otros.
Ubicado en el directorio WEB-INF de la aplicación web.

Monografias.com

Servidores de aplicaciones
SubJAVA WEB

Monografias.com

Características

Monografias.com

Características
El Servidor de Aplicaciones se encuentra compuesto por tres componentes: un “servidor de páginas Web”, un “Web Container" y un "EJB Container“.
Dentro del “Web Container" se ejecutan exclusivamente las clásicas aplicaciones de basadas en JSP's ("Java Server Pages") y Servlets.
Mientras el "EJB Container" es reservado para aplicaciones desarrolladas alrededor de EJB's "Enterprise Java Bean's".
Casi todos los servidores de aplicaciones en el mercado hoy en día son conocidos como "Fully JEE Compliant", este termino implica que se cumplen todas las especificaciones JavaEE definidas.

Monografias.com

Servidor de aplicaciones
Cuando utiliza un servidor de aplicaciones como alguno de los siguientes ("Fully JEE Compliant"):
Oracle WebLogic
IBM WebSphere Application Server
GlassFish
, no existe una clara distinción entre el "Web Container" y "EJB Container", es decir, es posible ejecutar tanto JSP/Servlets así como EJB's, sin embargo, el ambiente se encuentra altamente integrado para que sea transparente (al menos para el programador final) la comunicación entre JSP/Servlets y EJB's.

Monografias.com

Servidores
Open Source
Tomcat (sólo Web container)
GlassFish
Jboss
Geronimo
Comerciales
IBM WebSphere Application Server
Oracle WebLogic
SAP Netweaver

Monografias.com

SERVLETS / JSP
SubJAVA WEB

Monografias.com

Servlets
Un Servlet es una Clase de Java que se ejecuta en el Web Container (llamado también contenedor de Servlets).
La especificación de Servlet proporciona un estándar y un framework independiente de la plataforma para la comunicación entre los servlets y contenedores.
Este framework es un conjunto de Clases e Interfaces.
Estas Clases e Interfaces conforman el Servlet API.
Un servlet puede manejar múltiples requerimientos de concurrencia y puede sincronizarlos.
Los servlets pueden redireccionar los requerimientos a otros servlets.

Monografias.com

Servlet API

Monografias.com

Ciclo de Vida de un Servlet

Monografias.com

Ciclo de Vida de un Servlet
Carga e inicialización del Servlet
En forma predeterminada la clase HttpServlet inicializa el Servlet.
Para adicionar una inicialización personalizada se debe sobreescribir el método init().
Servicio del Servlet
Atiende a las peticiones POST o GET de los clientes. El método service() invoca a doPost() o doGet(), según sea el caso.
Destrucción el Servlet
El método destroy() destruye el servlet.
Para destruir algún recurso específico del Servlet se debe sobreescribir el método destroy().

Monografias.com

Interface Servlet
La interface Servlet es la central abstracción del Servlet API.
Todos los Servlet se implementan de esta interface, en forma directa o indirecta (a través de la clase extendida HttpServlet )
Cuando un Servlet acepta un requerimiento desde un cliente recibe 2 objetos:
ServletRequest: Encapsula la comunicación del cliente al servidor.
ServletResponse: Encapsula la comunicación del servidor al cliente.
.

Monografias.com

Interface Servlet

Monografias.com

Interface ServletRequest
La interface ServletRequest permite al Servlet acceder a:
Información enviada por el cliente.
El protocolo usado por el cliente.
El nombre del cliente, dirección IP, navegador utilizado.
Suministra el flujo de entrada de ServletInputStream.
Las interfaces que se extienden de la interface ServletRequest permiten obtener más información de un protocolo específico.
La interface HttpServletRequest contiene métodos para acceder a la información de cabecera del HTTP.

Monografias.com

Interface HttpServletRequest
Acceso a datos del cliente :
El método getParameter() retorna el valor de un parámetro y lo almacena como String.
El método getParameterValues() retorna los valores de los varios parámetros (checkboxes, listas desplegables múltiples) y lo almacena en un String[].
El método getParameterNames() provee los nombres de los parámetros y lo almacena un java.util.Enumeration.

Monografias.com

Interface HttpServletRequest
Método HTTP GET
Es utilizado para recuperar un recurso.
También para enviar información en texto plano al Servlet.
La información enviada por URL utiliza GET:
http://localhost/TestServlet?id=drodriguez
Los hiperenlaces utilizan GET.
Método HTTP POST
Utilizado para enviar datos al Servlet (texto plano o documentos)
Se configura en los formularios:
< form method=“post”>

Monografias.com

Interface ServletResponse
La interface ServletResponse provee los métodos para contestar al cliente:
Suministra un flujo de salida ServletOutputStream y un Writer a través del cual el Servlet puede enviar datos al cliente.
Permite al Servlet configurar el tipo MIME (Multipurpose Internet Mail Extension) a enviar.
Las interfaces que se extienden de la interface ServletResponse permiten aumentar las capacidades de un protocolo específico.
La interface HttpServletResponse contiene métodos que permiten manipular la información de cabecera del HTTP.

Monografias.com

Interface HttpServletResponse
El objeto HttpServletResponse provee dos formas de enviar datos al cliente :
El método getWriter() que retorna un objeto PrintWriter. Este objeto le permite al Servlet enviar texto plano (como HTML) al cliente.
El método getOutputStream() que retorna un objeto ServletOutputStream. Este objeto le permite al Servlet enviar datos en binario (doc, pdf, exe, ppt, zip, entre otros) al cliente.

Monografias.com

Formularios con Servlet
SubJAVA WEB

Monografias.com

Formularios con Servlet
Los objetos o componentes HTML que permiten interactuar con los usuarios son los formularios.
Los formularios brindan al desarrollador Web diferentes componentes para poder obtener información dinámica de los usuarios.
Para poder manejar formularios debemos conocer la estructura de las etiquetas.

Monografias.com

Formularios con Servlet

Monografias.com

Formularios con Servlet
< html>< body>
< form action=“RecServlet" method="post">
Nombre : < input name="nom" type="text">
Apellidos:< input name="ape" type="text">
< input type="submit" value="Aceptar">
< /form>
< /body>< /html>

Monografias.com

Formularios con Servlet
Para poder recuperar los valores del formulario debemos verficar:
El destino del formulario (action=" RecServlet ")
El método de envio (method="post").
Los parámetros o variables a enviar:
nombre (name="nom")
apellido (name="ape")

Monografias.com

Formularios con Servlet
Con la información reconocida podemos crear el Servlet.

public class RecServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
String nom = request.getParameter("nom”);
String ape = request.getParameter("ape");
}

Monografias.com

Cooperación y comunicación de Servlets
SubJAVA WEB

Monografias.com

Cooperación de Servlets
Se usa para repartir la carga de una aplicación o hacer un requerimiento de algún recurso de la aplicación.
Para utilizar los recursos del Servidor se debe manejar dos procesos:
Obtener el objeto RequestDispatcher .
Reenviar el requerimiento del cliente o incluir la respuesta del recurso.

Monografias.com

Cooperación de Servlets
Obtener el objeto RequestDispatcher:
Se obtiene el objeto RequestDispatcher usando el método getRequestDispatcher del objeto ServletContext.
Reenviar el requerimiento del cliente:
Se usa el método forward del objeto RequestDispatcher.
Si se accede antes al objeto PrintWriter o ServletOutputStream no se podrá usar el método forward.

Monografias.com

Cooperación de Servlets
Obtener el objeto RequestDispatcher:
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(“/respuesta.jsp”);

Reenviar el requerimiento del cliente :
dispatcher.forward(request,response);

Monografias.com

Cooperación de Servlets
Incrementar la respuesta del recurso :
Usa el método include del objeto RequestDispatcher para llamar a un servlet y usar el objeto RequestDispatcher asociado al recurso para formar parte de la respuesta al cliente.
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(“/dentro.jsp”);
PrintWriter out = res.getWriter(); out.println(“ANTES”);
dispatcher.include(request,response);
out.println(“DESPUES”);

Monografias.com

Comunicación de Servlets

Monografias.com

Comunicación de Servlets
Los servlets de una aplicación pueden compartir recursos usando alguno de los ambientes o scopes:
Context (o application)
Session
Request
Page

Monografias.com

Comunicación de Servlets
Estos ambientes o scopes tienen los siguientes métodos:
setAttribute(nombre, valor)
getAttribute(nombre)
removeAttribute(nombre)

Monografias.com

Concurrencia de Servlets
SubJAVA WEB

Monografias.com

Concurrencia de Servlets
El dispatcher asigna un thread al hilo worker.

Monografias.com

Concurrencia de Servlets
2 hilos podrían ejecutar el método service() simultáneamente.

Monografias.com

Concurrencia de Servlets
Un contenedor creará múltiples instancias de un servlet si el servlet implementa el SingleThreadModel.

Monografias.com

Sesiones
SubJAVA WEB

Monografias.com

Session Tracking
El seguimiento de sesiones es necesario para mantener el estado entre el Servlet y el cliente que persiste en múltiples conexiones durante un tiempo determinado.
El seguimiento de sesiones se realiza de las siguientes formas:
Cookies
URL Rewriting
Hidden Fields

Monografias.com

Session Tracking
¿Cómo el servidor puede mantener una sesión con un cliente si el HTTP no proporciona ningún mecanismo de recordar al cliente?
Cuando el servidor recibe la primera petición del cliente, el servidor inicia una sesión y le asigna un identificador único.
El cliente debe incluir este identificador único en cada requerimiento subsiguiente. El servidor inspecciona el identificador y asocia la petición con la correspondiente sesión.

Monografias.com

Session Tracking

Monografias.com

Session Tracking
Cookies
Consiste en almacenar ese ID de sesión en una cookie del cliente:
JSESSIONID=61C4F23524521390E70993E5120263C6
URL Rewriting
Consiste en agregar el ID en la URL. Es utilizado cuando el soporte a cookies ha sido deshabilitado.
< a href= "/ReportServlet;JSESSIONID=C084B32241B58114"> Reporte < /a>

Monografias.com

Session Tracking
Hidden Fields
Consiste en agregar el ID en campos ocultos de HTML:
< input type=“hidden” name=“JSESSIONID” value=“C084B32241B58114”/>

Monografias.com

HttpSession
El Servlet API trae el soporte de sesiones en la interfase javax.servlet.http.HttpSession.
El contenedor de Servlet crea un nuevo objeto HttpSession cuando inicia una sesión para un cliente.
Además de representar la sesión, este objeto actúa como un contenedor para la información relacionada a la sesión.
Normalmente, se necesitan hacer 3 acciones con una sesión HTTP:
Recuperar la sesión asociada con la petición.
Agregar o remover atributos de sesión.
Cerrar o invalidar la sesión si es necesario.

Monografias.com

HttpSession
Usualmente, un cliente no ofrece ningún indicador de que ha terminado la sesión. En este caso, el servidor nunca sabrá si el cliente ha terminado la sesión o no.
Para ayudarnos en este trabajo, el contenedor cerrará automáticamente la sesión después de un cierto periodo de tiempo de inactividad del usuario.
Este período de tiempo es configurado en minutos en el web.xml.

Monografias.com

HttpSession
Recuperar la sesión:
HttpSession session = request.getSession();
Agregar un objeto a la sesión:
session.setAttribute(NOMBRE, OBJETO);
Recuperar un objeto de la sesión:
Object lista = (Object)session.getAttribute(NOMBRE);
Invalidando una sesión:
session.invalidate();

Monografias.com

HttpSession
Tiempo de expiración de la sesión
La configuración se realiza en el web.xml. El tiempo establecido está en MINUTOS. El valor 0 indicaría que la sesión nunca expirará.
< web-app>
< session-config>
< session-timeout>30< /session-timeout>
< /session-config>
< /web-app>

Monografias.com

Referencias
Hall Marty, Brown Larry (2004). Core Servlets and JavaServer Pages.
Hanumant Deshmukh, Jignesh Malavia y Jacquelyn Carter (2005). SCWCD Exam Study Kit – Manning.
Sistemas cliente-servidor y procesos cooperativos – Universidad de Vigo
Wikipedia
http://www.jtech.ua.es/j2ee/2006-2007/jee.html
http://java.sun.com/javaee/reference/

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter