45
APACHE TOMCAT Servidor

Introducción a Tomcat

Embed Size (px)

DESCRIPTION

Introducción al servidor Tomcat.Resumen de conceptos básicos, instalación y configuración. Se repasan conceptos sobre JSPs, JavaBeans, Servicios web sobre Axis2, JNLP, etc.

Citation preview

Page 1: Introducción a Tomcat

APACHE TOMCATServidor

Page 2: Introducción a Tomcat

Introducción

Conceptos básicos Contenedor de servlets (Catalina) desarrollado bajo el proyecto Jakarta en Apache Software Foundation.

Implementa las especificaciones de los servlets y de JavaServer Pages (JSP) de Sun Microsystems.

Tomcat no es un servidor de aplicaciones (Jboss)

Compilador Jasper: compila JSPs → Servlets

Multiplataforma

Page 3: Introducción a Tomcat

Introducción

Conceptos básicos Creado por Duncan Davidson.

Tomcat (gato) = pretendiendo representar la capacidad de cuidarse por sí mismo, independiente.

Última versión (11/2011): Tomcat 7.x.

La versiones más extendidas es la 5.x y la 6. Vamos a usar Tomcat6.

http://tomcat.apache.org/

Page 4: Introducción a Tomcat

Introducción

Conceptos básicos Tomcat 6.x

• Implementa Servlet 2.5 y JSP 2.1

• Soporte para Unified Expression Language 2.1

• Java SE 5.0 y posteriores

• Soporte para Comet → CometProcessor

Suele utilizarse con Apache HTTP Web Server

Page 5: Introducción a Tomcat

Introducción

Estructura de directorios bin - arranque, cierre, y otros scripts y ejecutables

common - clases comunes que pueden utilizar Catalina y las aplicaciones web

conf - ficheros XML y los correspondientes DTD para la configuración de Tomcat

logs - logs de Catalina y de las aplicaciones

server - clases utilizadas solamente por Catalina

Page 6: Introducción a Tomcat

Introducción

Estructura de directorios shared - clases compartidas por todas las aplicaciones web

webapps - directorio que contiene las aplicaciones web

work - almacenamiento temporal de ficheros y directorios

Instalado en: /usr/local/tomcat6/

Page 7: Introducción a Tomcat

Introducción

Instalación y ejecución Instalar Java

Descargar http://tomcat.apache.org/download-60.cgi

Descomprimir Tomcat

Arrancar ./startup.sh

Parar ./shutdown.sh

Page 8: Introducción a Tomcat

Introducción

Instalación y ejecución Tomcat por defecto estucha en los puertos:

• 8080 (puerto por defecto de Tomcat)

• 8005 (puerto para apagar Tomcat)

• 8009 (conector AJP)

Página principal http://localhost:8080

Page 9: Introducción a Tomcat

Introducción

Tomcat Manager

Page 10: Introducción a Tomcat

Configuración

Ficheros de configuración /usr/local/tomcat6/conf/server.xml - Archivo principal de configuración /usr/local/tomcat6/tomcat-users.xml - Permite crear usuarios/contraseñas y roles. /usr/local/tomcat6/conf/web.xml – Valores por defecto para todas las aplicaciones. /usr/local/tomcat6/conf/catalina.properties - Modificar la estructura de directorios. /usr/local/tomcat6/conf/catalina.policy – Políticas de seguridad

Page 11: Introducción a Tomcat

Configuración

Ficheros de configuración /usr/local/tomcat6/bin/catalina.sh – Parámetros del arranque.

/usr/local/tomcat6/bin/startup.sh – Script arranque.

/usr/local/tomcat6/bin/shutdown.sh – Script parada.

/usr/local/tomcat6/bin/version.sh – Datos de la versión.

Ejecutar ./version.sh

Page 12: Introducción a Tomcat

Servlets

Conceptos básicos Objetos que corren dentro de un contenedor de servlets (ej: Tomcat) y extienden su funcionalidad.

Uso común: generar páginas web dinámicas.

Implementa la interfaz javax.servlet.Servlet o hereda alguna de las clases para un protocolo específico (ej: javax.servlet.HttpServlet).

Implementando esta interfaz: interpreta los objetos HttpServletRequest y HttpServletResponse. Contienen información de la página que lo invocó.

Page 13: Introducción a Tomcat

Servlets

Ciclo de vida1. El cliente solicita una petición a un servidor vía URL.2. El servidor recibe la petición.

2.1. La primera vez se llama al método init().2.2. Cualquier petición se convierte en un hilo. Puede manejar múltiples peticiones de clientes.

3. Se llama al método service() para procesar la petición devolviendo el resultado al cliente.4. Cuando se apaga el motor de un Servlet se llama al método destroy(), destruye y libera recursos.

Page 14: Introducción a Tomcat

Servlets

Ejemplo de Servlet

Page 15: Introducción a Tomcat

JSPs

Conceptos básicos JavaServer Pages (JSP): tecnología Java que permite generar contenido dinámico para web.

Acaban siendo compiladas como Servetls.

Permiten la utilización de código Java mediante Scriptlets.

Es posible utilizar algunas acciones JSP mediante etiquetas.

Page 16: Introducción a Tomcat

JSPs

Sintaxis - Variables Implícitas pageContext: javax.servlet.jsp.PageContext

request: javax.servlet.http.HttpServletRequest

response: javax.servlet.http.HttpServletResponse

session: javax.servlet.http.HttpSession

config: javax.servlet.ServletConfig

application: javax.servlet.ServletContext

Page 17: Introducción a Tomcat

JSPs

Sintaxis - Variables Implícitas out: javax.servlet.jsp.JspWriter

page: java.lang.Object

exception: java.lang.Exception

Page 18: Introducción a Tomcat

JSPs

Sintaxis - Directivas Etiquetas que generan información para ser utilizada por el motor de JSP. No producen una salida visible al usuario, configura cómo se ejecutará la página JSP. <%@ directiva atributo="valor" %>

include: Incluye el contenido de un fichero en la página: <%@ include file="cabecera.html" %>

taglib: Importa bibliotecas de etiquetas (Tag Libraries) <%@ taglib uri="/tags/struts-html" prefix="html" %>

Page 19: Introducción a Tomcat

JSPs

Sintaxis - Directivas page: Especifica atributos relacionados con la página a procesar. Los atributos son:

• import: <%@ page import="class; class" %> • session: <%@ page session="false" %> • contentType: <%@ page contentType="class; class" %> • buffer: <%@ page buffer="12KB" %> • errorPage: <%@ page errorPage="/path_to_error_page" %> • isErrorPage: <%@ page isErrorPage="true" %>

Page 20: Introducción a Tomcat

JSPs

Scriptlets Código Java incrustado entre los elementos estáticos de la página. <% ... código Java ... %>

Permiten declarar variables, funciones y datos estáticos. <%! int maxAlumnosClase = 30; %>

Las expresiones se evalúan dentro de la servlet. No deben acabar en ";" <%= maxAlumnosClase + 1%>

Page 21: Introducción a Tomcat

JSPs

Etiquetas JSP Funcionalidad a nivel de la página de una manera muy simple:

• <jsp:forward>, redirige la request a otra URL

• <jsp:include>, incluye el texto de un fichero dentro de la página

• <jsp:plugin>, descarga un plugin de Java (una applet o un Bean).

Page 22: Introducción a Tomcat

JSPs

Etiquetas JSP Permite manipular componentes JavaBean sin conocimientos de Java.

• <jsp:useBean>, permite manipular un Bean (si no existe, se creará el Bean), especificando su ámbito (scope), la clase y el tipo.

• <jsp:getProperty>, obtiene la propiedad especificada de un bean previamente declarado y la escribe en el objeto response.

• <jsp:setProperty>, establece el valor de una propiedad de un bean previamente declarado.

Page 23: Introducción a Tomcat

JSPs

Ejemplo de JSP

Page 24: Introducción a Tomcat

JavaBeans

Conceptos básicos Clase JavaBean debe obedecer ciertas convenciones:

• Debe tener un constructor sin argumentos.

• Sus propiedades deben ser accesibles mediante métodos get y set que siguen una convención de nomenclatura estándar.

• Debe ser serializable

Page 25: Introducción a Tomcat

JavaBeans

Ejemplo de JavaBean

Page 26: Introducción a Tomcat

Servicios web

Conceptos básicos Es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones.

Multiplataforma: Distintas plataformas se comunican.

La interoperabilidad se consigue mediante la adopción de estándares abierto

OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web.

Page 27: Introducción a Tomcat

Servicios web

Estándares empleados Web Services Protocol Stack: Conjunto de servicios y protocolos de los servicios Web.

XML: Datos de intercambio.

SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call): Protocolos sobre los que se establece el intercambio.

WSDL (Web Services Description Language): Es el lenguaje de la interfaz pública para los servicios Web.

Page 28: Introducción a Tomcat

Servicios web

Estándares empleados UDDI (Universal Description, Discovery and Integration): Permite comprobar qué servicios web están disponibles.

WS-Security (Web Service Security): Protocolo de seguridad.

Otros protocolos: Los XML también pueden enviarse de una aplicación a otra mediante protocolos normales como HTTP, FTP, o SMTP.

Page 29: Introducción a Tomcat

Servicios web

Ventajas Interoperabilidad entre aplicaciones y plataformas.

Fomentan los estándares y protocolos.

Al apoyarse en HTTP, se pueden aprovecharse la seguridad de firewall sin necesidad de cambiar las reglas de filtrado.

Integración de servicios ubicados lejos geográficamente.

Especificaciones gestionadas por organización abierta (W3C). No hay intereses de fabricantes.

Page 30: Introducción a Tomcat

Servicios web

Inconvenientes Problemas al realizar transacciones.

Rendimiento bajo comparado con otros modelos de computación distribuida como RMI (Remote Method Invocation), CORBA o DCOM (Distributed Component Object Model). Es uno de los inconvenientes derivados de adoptar un formato basado en texto.

Al apoyarse en HTTP, pueden esquivar medidas de seguridad basadas en firewall cuyas reglas tratan de bloquear comunicación entre programas a ambos lados de la barrera.

Page 31: Introducción a Tomcat

Servicios web

¿Porqué crear servicios web? Se basan en HTTP sobre TCP en el puerto 80. Los firewalls cierran casi todos los puertos menos el 80.

Antes de SOAP -> malas interfaces para acceder a las funcionalidades de otros ordenadores. (ad hoc, EDI, RPC, etc.)

Gran independencia entre la aplicación que usa el servicio Web y el propio servicio. Cambios a lo largo del tiempo en uno no deben afectar al otro.

Page 32: Introducción a Tomcat

Servicios web

Esquema general

Page 33: Introducción a Tomcat

Servicios web

Esquema general Se basan en HTTP sobre TCP en el puerto 80. Los firewalls cierran casi todos los puertos menos el 80.

Antes de SOAP -> malas interfaces para acceder a las funcionalidades de otros ordenadores. (ad hoc, EDI, RPC, etc.)

Gran independencia entre la aplicación que usa el servicio Web y el propio servicio. Cambios a lo largo del tiempo en uno no deben afectar al otro.

Page 34: Introducción a Tomcat

Servicios web

AXIS2 (WS en Tomcat) Axis2 Es un motor para servicios Web.

La implementación está disponible para Java y C.

Se distribuyen librerías para servicios web y una aplicación (axis2.war) para desplegar y gestionar.

Los servicios web se empaquetan como aplicaciones “myWebService.aar”.

http://axis.apache.org/axis2/java/core/

Page 35: Introducción a Tomcat

Servicios web

Ejemplo WS + Axis2 + Tomcat6

Page 36: Introducción a Tomcat

Servicios web

SOAPUI Herramienta Open Source de testing para WS.

Existe también una versión Pro.

Multiplataforma.

Intuitiva y de fácil uso e instalación.

http://www.soapui.org/

Page 37: Introducción a Tomcat

Servicios web

Instalar SoapUIProbar un WS

Page 38: Introducción a Tomcat

Java Web Start - JNLP

Conceptos básicos Java Networking Launching Protocol: especificación usada por Java Web Start.

Permite tener centralizado en un host un programa, evitando problemas de distribución e instalación.

Simplemente se accede al JNLP y se descarga, instala y ejecuta de modo transparente al usuario.

javaws NO usa applets. Descarga aplicaciones java normales. Único requisito: JRE >= versión 1.4.

Page 39: Introducción a Tomcat

Java Web Start - JNLP

Conceptos básicos Al instalar cualquier aplicación, normalmente se dan una serie de pasos:

• Se obtiene de internet/medio extraíble (CD/USB...)• Se instala en el ordenador• Se ejecuta

El programa javaws (Java Web Start) permite hacer los pasos anteriores de un modo más fácil y transparente.

Page 40: Introducción a Tomcat

Java Web Start - JNLP

Conceptos básicos Cualquier enlace JNLP pide autorización al usuario.

Las aplicaciones (JARs) deben estar firmadas.

Ficheros JNLP = Ficheros XML que siguen la especificación usada por Java Web Start:

• Cabecera: <?xml version="1.0" encoding="CODIFICACIÓN"?>

• Ruta predeterminada: <jnlp spec="1.0+" codebase="http://URL/directorio_programa" href="JNLP.jnlp">

• Uno o varios TAG information

Page 41: Introducción a Tomcat

Java Web Start - JNLP

Ejecutar aplicación JNLP

Page 42: Introducción a Tomcat

Apache Struts

Conceptos básicos Framework Open Source para el desarrollo de aplicaciones Web bajo el patrón MVC (Modelo, vistas y controlador) y J2EE.

Permite reducir el tiempo de desarrollo.

Extremadamente popular y extendido.

Versión actual: (11/2011) Struts 2.2.3.1

Versión más usada: Struts 1 :(

http://struts.apache.org/

Page 43: Introducción a Tomcat

Apache Struts

MVC - Modelo, vistas y controlador

Arquitectura que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control

• Vista: JSPs, HTML, etc.

• Modelo: Sistema de Gestión de Base de Datos, la lógica de negocio, etc.

• Controlador: Responsable de recibir los eventos de entrada desde la vista.

Page 44: Introducción a Tomcat

Apache ANT

Conceptos básicos Herramienta para la realización de tareas mecánicas y repetitivas: compilación, construcción de la aplicación (build), limpieza, etc.

Similar a Make pero desarrollado en lenguaje Java.

Se basa en archivos de configuración XML y clases/librerías Java.

Multiplataforma.

http://ant.apache.org/index.html

Page 45: Introducción a Tomcat

FINAPACHE TOMCAT

Iker [email protected]