introducción a tomcat
Post on 21-Jun-2015
9.348 Views
Preview:
DESCRIPTION
TRANSCRIPT
APACHE TOMCATServidor
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
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/
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
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
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/
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
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
Introducción
Tomcat Manager
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
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
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ó.
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.
Servlets
Ejemplo de Servlet
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.
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
JSPs
Sintaxis - Variables Implícitas out: javax.servlet.jsp.JspWriter
page: java.lang.Object
exception: java.lang.Exception
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" %>
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" %>
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%>
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).
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.
JSPs
Ejemplo de JSP
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
JavaBeans
Ejemplo de JavaBean
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.
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.
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.
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.
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.
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.
Servicios web
Esquema general
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.
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/
Servicios web
Ejemplo WS + Axis2 + Tomcat6
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/
Servicios web
Instalar SoapUIProbar un WS
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.
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.
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
Java Web Start - JNLP
Ejecutar aplicación JNLP
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/
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.
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
FINAPACHE TOMCAT
Iker Canariasiker.canarias@gmail.com
top related