J2EE Java 2 Enterprise Edition



Documentos relacionados
envía al browser. El browser despliega el archivo.

Ejemplos de Servlet y JSP Web Application Development

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

NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets. ISIS1206 Estructuras de Datos

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

Unidad IV: Servlets. Comprender la estructura básica de los Servlets Crear servlets sencillos Presentar el ciclo de vida de un Servlet.

Requisitos. Universidad ORT Arquitectura de Software

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

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

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

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

SERVLETS. Aplicaciones Distribuidas

Clase. geniería de la Computación. Departamento de Ciencias e Ing. Diego C. Martínez - DCIC-UNS

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

3 PROGRAMACIÓN WEB CON SERVLETS

Aplicaciones Web con Servlets y JSP (I)

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

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

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

JAVA EE 5. Arquitectura, conceptos y ejemplos.

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

JAVA: Servlets. Diseño de aplicaciones web.

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE COMPUTO

HTTP, CGI, Applets y Servlets

Servlets (I) Mario Muñoz Organero & Norberto Fernández Departamento de Ingeniería Telemática

PROGRAMACIÓN JEE CON SERVLETS

Desarrollo de Software con

Aplicaciones Web (Curso 2015/2016)

Práctica 2: Extensión de un servidor con servlets

Sistemas de Información

Introducción a las aplicaciones WEB

Facultad de Sistemas e Informática

Computación Web (Curso 2015/2016)

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

Java Servlets. Qué es un programa? Luis Fernando Llana Díaz. 22 de abril de input Programa output. En pascal:

Implementando nuestro primer servlet

Java 2 Enterprise Edition

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

Computación Web (Curso 2013/2014)

CAPÍTULO 14. DESARROLLO

10. Servlets con acceso a bases de datos

Tema 3: Tecnologías Java distribuidas

Diseño Y Aplicaciones de Sistemas Distribuidos. Servlets. Joan Vila

Conexión de Mysql con NetBeans

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

Tema 6: Arquitectura Web Multicapa

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

Aplicaciones Cliente - Servidor

Cada vez que la misma computadora solicita una página pg con un browser, junto con la solicitud el browser envía la cookie al servidor.

Curso de Java Java para Web

Desarrollo de Sistemas Software Basados en Servicios y Componentes

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

Servlets. 1. Introducción Características fundamentales Ventajas fundamentales... 2

Tecnura ISSN: X Universidad Distrital Francisco José de Caldas Colombia

Tema 1. Introducción a Java EE

Desarrollo y servicios web Sesión 18

Introducción a los servlets

Framework 1. Web en Java. (solo aplicaciones en mantenimiento)

Notas técnicas de JAVA Nro. 7 Tip Breve

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

Curso Java Web (JSP's/Servlets)

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

Aplicaciones web con Tomcat y MySQL en Linux

Transacciones: 2PC y 3PC. Aplicaciones de Internet: HTTP/Applets, HTTP/GCI y Java Servlets

Productos para desarrollar aplicaciones web: ASP, CFM, JSP y PHP

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

Tema 5: Tecnologías Web

Introducción a JAX-WS Web Services

9. Servlets CAPÍTULO Clientes y Servidores

Applets y Aplicaciones

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

[CASI v.0109] Pág. 1

aplicaciones web: ASP, CFM, JSP y PHP

Escribir código HTML en los servlets es tedioso. que hay que utilizar las instrucciones print, println, etc. Es decir, HTML está dentro de java.

Tema 4: Servidores Web

Servidores Web. Tema 4: Acceso a Páginas Web en ficheros. Output. GET /index.html. Server host. HTTP server: Apache, IIS SO Unix.

Caso J2EE. Necesidades del negocio. Arquitectura Luther

Introducción a las aplicaciones WEB

LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52)

[CASI v.0109] Pág. 1

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

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

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

ALTAS MANUAL DE USUARIO ENVÍO DE CORREOS ELECTRÓNICOS

Práctica 4 PROGRAMACIÓN WEB CON SERVLETS Y JSP. 1. Introducción a JSP... 2

Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Desarrollo de aplicaciones para Internet

Generador GeneXus JAVA

Interacción entre Aplicaciones: objetos distribuidos e invocación remota

Universidad ORT - Arquitectura de Software. Requisitos

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

Cursos PROGRAMACIÓN DE APLICACIONES CON JAVA

Tema 4: Tecnologías Web Java

Mario Muñoz Organero & Norberto Fernández * Departamento de Ingeniería Telemática

CAPITULO IV 4. Utilización de Servlets en AVCIDE

1 Índice Introducción Propósito Alcance Modelo Arquitectónico Inicial... 3

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

Hello World Ajax! con Eclipse

Arquitectura Cliente/Servidor. Invocación de Métodos Remotos RMI: Remote Method Invocation. Llamadas a Métodos Remotos

Transcripción:

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 distribuídas multitiered, la habilidad de reusar componentes, intercambio de datos basado en XML, un manejo de transacciones flexible y un modelo de seguridad unificado Las soluciones J2EE no están atadas a productos ni a interfaces de programación de ningún fabricante

Arquitectura J2EE Se ejecuta en la máquina cliente Aplicación Cliente Páginas HTML Dinámicas Client Tier Se ejecuta en el servidor J2EE Servlets Páginas JSP Web Tier Se ejecuta en el servidor J2EE Enterprise Beans Enterprise Beans Business Tier Se ejecuta en el servidor EIS Base de Datos Base de Datos EIS Tier

Componentes J2EE Las aplicaciones J2EE están formadas por componentes. Componentes Clientes Clientes web Applets Aplicaciones Cliente Componentes Web Servlets Páginas JavaServer Pages (JSP) Componentes de Negocios Entreprise Java Beans Session Beans Entity Beans Message Driven Bean

Componentes J2EE El Cliente Web se comunica con el Business Tier a través de servlets o JSP s Web Browser Páginas Web, Applets Aplicaciones Cliente Servlets Web JSP Tier La Aplicación Cliente se comunica con el Business Tier directamente Business Tier J2EE Server

Contenedores J2EE El servidor J2EE provee servicios en forma de Contenedor para cada tipo de componente Los contenedores son la interface entre la componente y la funcionalidad de bajo nivel que soporta a la componente. El contenedor maneja el ciclo de vida de los servlets y EJB, el Pool de conexiones a la bd, Tipos de contenedores Contenedor EJB: maneja la ejecución de los EJB Contenedor Web: maneja la ejecución de servlets y JSP Contenedor de Applets: maneja la ejecución de applets Contenedor de Aplicaciones Cliente Provistos por el Servidor J2EE Provisto por el Web Browser

Arquitectura de una Aplicación Web Servidor HTTP o Contenedor Web Pedido HTTP Navegador Web Respuesta HTTP Servidor Web (HTTP) Servlets Web Tier EIS Tier Datos Client Tier

Servlets Un servlet es un programa Java que se ejecuta en un servidor. Es un servidor chico, especializado. Los usados más comunmente son los servlets HTTP. Un servlet recibe requerimientos HTTP y devuelve resultados como respuestas HTTP. Los servlets tienen un funcionamiento similar a un applet no visual que se ejecuta en el servidor web. Tiene un ciclo de vida similar al del applet. La API de servlets provee clases e interfaces que realizan servicios. El Contenedor de Servlet, evita que el programador deba ocuparse de la conectividad con la red, capturar los pedidos, producir las respuestas, etc. Tomcat es un Contenedor de Servlets.

Servlet Container El Contenedor de Servlet es el encargado de: Capturar los requerimientos HTTP (traduce los requerimientos en objetos que el servlet entiende) Pasar el requerimiento al servlet (HTTPServletRequest) Devolver las respuestas (HTTPServletResponse) Manejar el ciclo de vida del servlet

Ciclo de vida de un Servlet Servlet Container thread thread Crear Pool de therads Instanciar el Servlet Servlet Requerimiento HTTP (R1) Invocar al método init() Inicialización Requerimiento HTTP (R2) Alocar un thread Invocar al método service() Respuesta HTTP (a R1) Respuesta HTTP (a R2) Alocar un thread Shut down del Contenedor Termina el pool de threads Invocar al método service() Ejecución del servicio Ejecución del servicio Invocar al método destroy() Finaliza la ejecución del servlet() Se liberan recursos Servlet Container finaliza

La interface de programación de Servlets Las clases e interfaces para implementar servlets están agrupadas en dos paquetes: javax.servlet: provee la interface básica de servlets, Servlet javax.servlet.http: provee clases derivadas de la interface Servlet y herramientas específicas para atender requerimientos HTTP

La interfaz Servlet Directa ó indirectamente todos los servlets implementan la interfaz javax.servlet.servlet public interface Servlet public void init (ServletConfig config) throws ServletException public void service(servletrequest req, ServletResponse res) throws ServletException, IOException public void destroy() public ServletConfig getservletconfig() public String getservletinfo() Generalmente, para implementar servlets se extienden las clases javax.servlet.genericservlet ó javax.http.httpservlet

Las clases GenericServlet y HttpServlet public abstract class GenericServlet implements Servlet, ServletConfig, Serializable La clase Generic Servlet provee una implementación básica de la interfaz Servlet. Está contenida en el paquete javax.servlet. Es una clase abstracta. Esto se debe a que el método service() es abstracto, por lo tanto cualquier clase que extienda esta clase debe implementar el método service(). public class HttpServlet extends GenericServlet La clase HttpServlet provee una implementación específica para HTTP de la interfaz Servlet. Es la clase que implementan la mayoría de los servlets. Está contenida en el paquete javax.servlet.http. protected void service(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException public void service(servletrequest req, ServletResponse res) throws ServletException, IOException

La interfaz HttpServletRequest public abstract interface HttpServletRequest extends javax.servlet.servletrequest public String getparameter(string key) Devuelve el valor de un parámetro con la clave dada. Si hay múltiples valores para esa parámetro, devuelve el primero. public String[] getparametervalues(string key) Devuelve todos los valores del parámetro con la clave dada (en el caso de un CHECKBOX, devuelve los valores de todos los ítems seleccionados). public Enumaration getparameternames() Devuelve una lista con todos los nombres de los parámetros del requerimiento.

La interfaz HttpServletResponse public abstract interface HttpServletRequest extends javax.servlet.servletresponse public void setcontenttype(string type) Antes de devolver la respuesta, se debe invocar a este método para setear el tipo MIME de la respuesta Http. public PrintWriter getwriter() throws IOException El objeto PrintWriter que devuelve, es usado por el servlet para escribir la respuesta como texto. public ServletOutPutStream getoutputstream() throws IOException El objeto ServletOutPutStream (subclase de java.io.outputstream) es usado para enviar al cliente datos binarios. public void setheader(string name, String value)

Servlet Hola Mundo import javax.servlet.*; import javax.servlet.http.*; Clases Java que proveen el soporte para servlets import java.io.*; Todos los servlets deben implementar la interfaz Servlet para poder funcionar como servlets. Es posible extender la clase HttpServlet. public class HolaMundo extends HttpServlet; { public void doget (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.contenttype( text/html ); PrintWriter out=res.getwriter(); out.println( <HTML> ); out.println( <HEAD> ); out.println( <TITLE> Hola Mundo </TITLE> ); out.println( </HEAD> ); out.println( <BODY> ); out.println( <CENTER> <H1> Hola Mundo! </H1> </CENTER> ); out.println( </BODY> ); out.println( </HTML> ); Se abre un outputsream para devolver los resultados al browser Codificación de la salida } } out.close(); Envío de la respuesta al browser

Ejemplo <HTML> <HEAD> </HEAD> <BODY> <TITLE>Departamento de Informática </TITLE> <FORM ACTION= http://localhost:8080/servlet/soportetecnico METHOD= POST > <CENTER> <H1>Formulario de Pedido de Soporte Técnico </H1> <HR> <BR> <TABLE ALIGN= center WIDTH= 100% CELLSPACING= 2 CELLPADDING= 2 > <TR> <TD ALIGN= right >Nombre: </TD> <TD><INPUT TYPE= Text NAME= txtnombre ALIGN= LEFT SIZE= 15 ></TD> <TD ALIGN= right >Apellido: </TD> <TD><INPUT TYPE= Text NAME= txtapellido ALIGN= LEFT SIZE= 15 ></TD> </TR> <TR><TD ALIGN= right >Email: </TD> <TD><INPUT TYPE= Text NAME= txtmail ALIGN= LEFT SIZE= 25 ></TD> <TD ALIGN= right >Teléfono: </TD> <TD><INPUT TYPE= Text NAME= txttel ALIGN= LEFT SIZE= 15 ></TD></TR> <TR><TD ALIGN= right >Software: </TD> <TD><SELECT NAME= soft SIZE= 1 > <OPTION VALUE= Word >Microsoft Word </OPTION> <OPTION VALUE= Excel >Microsoft Excel </OPTION> <OPTION VALUE= Access >Microsoft Access </OPTION></SELECT></TD> <TD ALIGN= right >Sistema Operativo: </TD> <TD><SELECT NAME= os SIZE= 1 > <OPTION VALUE= 95 >Windows 95 </OPTION> <OPTION VALUE= 98 > Windows 98 </OPTION> <OPTION VALUE= NT > Windows NT </OPTION></SELECT></TD></TR> </TABLE> </CENTER> <BR>Descripción del Problema: <BR><TEXTAREA NAME= txtproblema COLS= 50 ROWS= 4 ></TEXTAREA> <HR> <BR> <CENTER> <INPUT TYPE= Submit NAME= enviar VALUE= Enviar Datos > </CENTER></FORM></BODY></HTML> Formulario HTML

Ejemplo import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import sun.net.smtp.smtpclient; public class SoporteTecnico extends HttpServlet; { String message, msgfrom, msgto, msgsubject; public void dopost(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.contenttype( text/html ); PrintWriter out=res.getwriter(); Se abre un outputsream para armar la respuesta del browser getparameters(req); Invoca sucesivamente al getparameter() sobre el objeto req y recupera todos los datos del formulario en la variable message if (! sendmail()) { res.senderror(res.sc_internal_server_error, Error de acceso al servidor de correo ); return; }... out.close(); Envía la respuesta al browser } Servlet Reporta un error al browser public void getparameters (HttpServletRequest req) throws ServletException, IOException { StringBuffer tempstringbuffer =new StringBuffer(1024); msgsubject= Requerimiento de soporte técnico ; msgto= claudiaq@info.unlp.edu.ar ; msgfrom=req.getparameter( txtmail ); tempstringbuffer.append( From: ); tempstringbuffer.append(req.getparameter( txtnombre )); tempstringbuffer.append( ); tempstringbuffer.append(req.getparameter( txtapellido )); tempstringbuffer.append( \n );... message=tempstringbuffer.tostring(); } public void sendmail () { PrintStream out; SmtClient send; } } try { send=new SmtClient( info.unlp.edu.ar ); send.from(msgfrom); send.to(msgto); out=send.startmessage(); out.println( From: +msgfrom); out.println(to: +msgto); out.println( Subject: +msgsubject); out.println( \n-----------------------\n ); out.println(message);... out.flush(); out.close(); send.closeserver(); } catch (IOException e) { log ( Error al enviar el mail, e); return false; } return true; Servlet