SlideShare una empresa de Scribd logo
Servidor

APACHE 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
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 vida
  1. 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 SoapUI
Probar 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
APACHE TOMCAT


     FIN
                       Iker Canarias
           iker.canarias@gmail.com

Más contenido relacionado

La actualidad más candente

Diseño Orientado a Objetos
Diseño Orientado a ObjetosDiseño Orientado a Objetos
Diseño Orientado a Objetos
MegaMono
 
Auditoría de redes
Auditoría de redesAuditoría de redes
Auditoría de redes
Carloz Kaztro
 
Modelos de calidad CMMI - Moprosoft
Modelos de calidad CMMI - MoprosoftModelos de calidad CMMI - Moprosoft
Modelos de calidad CMMI - Moprosoft
Ricardo Juarez
 
Componentes de sgbd
Componentes de sgbdComponentes de sgbd
Componentes de sgbd
dalilaramontello
 
Control interno informático
Control interno informáticoControl interno informático
Control interno informático
Juan Moreno
 
14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentes14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentes
Gary Araujo Viscarra
 
Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelos
Rafael Fdo Lopez Castillo
 
tecnicas de revisión del software
tecnicas de revisión del softwaretecnicas de revisión del software
tecnicas de revisión del software
MARCO POLO SILVA SEGOVIA
 
Sistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de SistemasSistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de Sistemas
Uniminuto - San Francisco
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
Roger Villegas
 
modelos de calidad de software
modelos de calidad de softwaremodelos de calidad de software
modelos de calidad de software
Hernan Espinoza
 
Fase1 BD avanzada
Fase1 BD avanzada Fase1 BD avanzada
Fase1 BD avanzada
leostave
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)
katherine revelo gomez
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionalesRequisitos funcionales y no funcionales
Requisitos funcionales y no funcionales
Rene Guaman-Quinche
 
técnicas estáticas
técnicas estáticastécnicas estáticas
técnicas estáticas
Juan Esteban Puerta Cano
 
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemasUNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
UNEG-AS
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
Rocio Camargo Villa
 
Servicio comunitario informatica (etapas)
Servicio comunitario informatica (etapas)Servicio comunitario informatica (etapas)
Servicio comunitario informatica (etapas)
Ana Navarro
 
Calidad Del Producto Software
Calidad Del Producto SoftwareCalidad Del Producto Software
Calidad Del Producto Software
albert317
 
Cuadro comparativo sgbd
Cuadro comparativo sgbdCuadro comparativo sgbd
Cuadro comparativo sgbd
Manuel Miranda Buenabad
 

La actualidad más candente (20)

Diseño Orientado a Objetos
Diseño Orientado a ObjetosDiseño Orientado a Objetos
Diseño Orientado a Objetos
 
Auditoría de redes
Auditoría de redesAuditoría de redes
Auditoría de redes
 
Modelos de calidad CMMI - Moprosoft
Modelos de calidad CMMI - MoprosoftModelos de calidad CMMI - Moprosoft
Modelos de calidad CMMI - Moprosoft
 
Componentes de sgbd
Componentes de sgbdComponentes de sgbd
Componentes de sgbd
 
Control interno informático
Control interno informáticoControl interno informático
Control interno informático
 
14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentes14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentes
 
Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelos
 
tecnicas de revisión del software
tecnicas de revisión del softwaretecnicas de revisión del software
tecnicas de revisión del software
 
Sistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de SistemasSistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de Sistemas
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
 
modelos de calidad de software
modelos de calidad de softwaremodelos de calidad de software
modelos de calidad de software
 
Fase1 BD avanzada
Fase1 BD avanzada Fase1 BD avanzada
Fase1 BD avanzada
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionalesRequisitos funcionales y no funcionales
Requisitos funcionales y no funcionales
 
técnicas estáticas
técnicas estáticastécnicas estáticas
técnicas estáticas
 
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemasUNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
 
Servicio comunitario informatica (etapas)
Servicio comunitario informatica (etapas)Servicio comunitario informatica (etapas)
Servicio comunitario informatica (etapas)
 
Calidad Del Producto Software
Calidad Del Producto SoftwareCalidad Del Producto Software
Calidad Del Producto Software
 
Cuadro comparativo sgbd
Cuadro comparativo sgbdCuadro comparativo sgbd
Cuadro comparativo sgbd
 

Destacado

Ventajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IISVentajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IIS
elianaespinoza
 
Introducción a JBoss
Introducción a JBossIntroducción a JBoss
Introducción a JBoss
Iker Canarias
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticas
Iker Canarias
 
Tomcat configuration
Tomcat configurationTomcat configuration
Tomcat configuration
Dima Gomaa
 
Glassfish
GlassfishGlassfish
Glassfish
abbadon1989
 
Manual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en EclipseManual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en Eclipse
Stalin Eduardo Tusa Vitar
 
Servlets
ServletsServlets
Servlets
Geethu Mohan
 
Ventajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IISVentajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IIS
Anthony Mejias
 
Tomcat
TomcatTomcat
Tomcat
abbadon1989
 
Servlets
ServletsServlets
Pasos para Instalar MySQL server
Pasos para Instalar MySQL server Pasos para Instalar MySQL server
Pasos para Instalar MySQL server
PEPE QH
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcat
jubacalo
 
Yakaré - All New Very Cool
Yakaré - All New Very CoolYakaré - All New Very Cool
Yakaré - All New Very Cool
Luz Amparo Cerón
 
Fraiche / Listados disponibles 2017
Fraiche / Listados disponibles 2017Fraiche / Listados disponibles 2017
Fraiche / Listados disponibles 2017
Luz Amparo Cerón
 
Jean-Paul Sartre - Qu'est-ce que la Litterature
Jean-Paul Sartre - Qu'est-ce que la LitteratureJean-Paul Sartre - Qu'est-ce que la Litterature
Jean-Paul Sartre - Qu'est-ce que la Litterature
Sais Abdelkrim
 
Psico tsc el aparato psíquico 2
Psico tsc el aparato psíquico 2Psico tsc el aparato psíquico 2
Psico tsc el aparato psíquico 2
Dra Ja
 
¿ Compras lo que quieres ?
¿ Compras lo que quieres ?¿ Compras lo que quieres ?
¿ Compras lo que quieres ?
Cova Linares
 
Brice MOURER, MAGIC GARDEN AGENCY (PARIS 2.0, Sept 2009)
Brice MOURER,  MAGIC GARDEN AGENCY (PARIS 2.0, Sept 2009)Brice MOURER,  MAGIC GARDEN AGENCY (PARIS 2.0, Sept 2009)
Brice MOURER, MAGIC GARDEN AGENCY (PARIS 2.0, Sept 2009)
PSST (opinions et tendances 2.0) par jeremy dumont
 
Adondefueronapredicarlosemisarios
AdondefueronapredicarlosemisariosAdondefueronapredicarlosemisarios
Adondefueronapredicarlosemisarios
Regresando a las Raices de la Fe
 

Destacado (20)

Ventajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IISVentajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IIS
 
Introducción a JBoss
Introducción a JBossIntroducción a JBoss
Introducción a JBoss
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticas
 
Tomcat configuration
Tomcat configurationTomcat configuration
Tomcat configuration
 
Glassfish
GlassfishGlassfish
Glassfish
 
Manual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en EclipseManual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en Eclipse
 
Servlets
ServletsServlets
Servlets
 
Ventajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IISVentajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IIS
 
Tomcat
TomcatTomcat
Tomcat
 
Servlets
ServletsServlets
Servlets
 
Pasos para Instalar MySQL server
Pasos para Instalar MySQL server Pasos para Instalar MySQL server
Pasos para Instalar MySQL server
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcat
 
Yakaré - All New Very Cool
Yakaré - All New Very CoolYakaré - All New Very Cool
Yakaré - All New Very Cool
 
Fraiche / Listados disponibles 2017
Fraiche / Listados disponibles 2017Fraiche / Listados disponibles 2017
Fraiche / Listados disponibles 2017
 
Jean-Paul Sartre - Qu'est-ce que la Litterature
Jean-Paul Sartre - Qu'est-ce que la LitteratureJean-Paul Sartre - Qu'est-ce que la Litterature
Jean-Paul Sartre - Qu'est-ce que la Litterature
 
Psico tsc el aparato psíquico 2
Psico tsc el aparato psíquico 2Psico tsc el aparato psíquico 2
Psico tsc el aparato psíquico 2
 
¿ Compras lo que quieres ?
¿ Compras lo que quieres ?¿ Compras lo que quieres ?
¿ Compras lo que quieres ?
 
Tuto openoffice.0rgwriter
Tuto openoffice.0rgwriterTuto openoffice.0rgwriter
Tuto openoffice.0rgwriter
 
Brice MOURER, MAGIC GARDEN AGENCY (PARIS 2.0, Sept 2009)
Brice MOURER,  MAGIC GARDEN AGENCY (PARIS 2.0, Sept 2009)Brice MOURER,  MAGIC GARDEN AGENCY (PARIS 2.0, Sept 2009)
Brice MOURER, MAGIC GARDEN AGENCY (PARIS 2.0, Sept 2009)
 
Adondefueronapredicarlosemisarios
AdondefueronapredicarlosemisariosAdondefueronapredicarlosemisarios
Adondefueronapredicarlosemisarios
 

Similar a Introducción a Tomcat

Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en Java
Eudris Cabrera
 
Servlet
ServletServlet
Servlet
spcsliki62
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
Eudris Cabrera
 
Tomcat yant
Tomcat yantTomcat yant
Java WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRsJava WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRs
Hernan Rengifo
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
César Ocampo
 
[ES] Introdución al desarrollo de aplicaciones web en java
[ES] Introdución al desarrollo de aplicaciones  web en java[ES] Introdución al desarrollo de aplicaciones  web en java
[ES] Introdución al desarrollo de aplicaciones web en java
Eudris Cabrera
 
JSP
JSPJSP
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicion
Flashnet S.A
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xml
gilhorak
 
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptintroduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
BYRONMIGUELSUBUYUCPA
 
Charla
CharlaCharla
Charla
yanetzis
 
2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006
Samuel Marrero
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
Luis Miguel De Bello
 
Jsp
JspJsp
Java Web - JSP
Java Web - JSPJava Web - JSP
Java Web - JSP
Luis Miguel De Bello
 
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperGuia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Oscar V
 
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-20065. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
Samuel Marrero
 
Tomcat
TomcatTomcat
Introduccion Ajax V1.0
Introduccion Ajax V1.0Introduccion Ajax V1.0
Introduccion Ajax V1.0
Arnulfo Gomez
 

Similar a Introducción a Tomcat (20)

Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en Java
 
Servlet
ServletServlet
Servlet
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
 
Tomcat yant
Tomcat yantTomcat yant
Tomcat yant
 
Java WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRsJava WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRs
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
 
[ES] Introdución al desarrollo de aplicaciones web en java
[ES] Introdución al desarrollo de aplicaciones  web en java[ES] Introdución al desarrollo de aplicaciones  web en java
[ES] Introdución al desarrollo de aplicaciones web en java
 
JSP
JSPJSP
JSP
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicion
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xml
 
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptintroduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
 
Charla
CharlaCharla
Charla
 
2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
 
Jsp
JspJsp
Jsp
 
Java Web - JSP
Java Web - JSPJava Web - JSP
Java Web - JSP
 
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperGuia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
 
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-20065. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
 
Tomcat
TomcatTomcat
Tomcat
 
Introduccion Ajax V1.0
Introduccion Ajax V1.0Introduccion Ajax V1.0
Introduccion Ajax V1.0
 

Más de Iker Canarias

Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
Iker Canarias
 
Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache Ant
Iker Canarias
 
Introducción a JUnit
Introducción a JUnitIntroducción a JUnit
Introducción a JUnit
Iker Canarias
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
Iker Canarias
 
Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
Iker Canarias
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en Java
Iker Canarias
 
Introducción a JEE
Introducción a JEEIntroducción a JEE
Introducción a JEE
Iker Canarias
 
Buenas prácticas para la construcción de software
Buenas prácticas para la construcción de softwareBuenas prácticas para la construcción de software
Buenas prácticas para la construcción de software
Iker Canarias
 
Introducción a Servidor HTTP Apache
Introducción a Servidor HTTP ApacheIntroducción a Servidor HTTP Apache
Introducción a Servidor HTTP Apache
Iker Canarias
 

Más de Iker Canarias (9)

Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache Ant
 
Introducción a JUnit
Introducción a JUnitIntroducción a JUnit
Introducción a JUnit
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
 
Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en Java
 
Introducción a JEE
Introducción a JEEIntroducción a JEE
Introducción a JEE
 
Buenas prácticas para la construcción de software
Buenas prácticas para la construcción de softwareBuenas prácticas para la construcción de software
Buenas prácticas para la construcción de software
 
Introducción a Servidor HTTP Apache
Introducción a Servidor HTTP ApacheIntroducción a Servidor HTTP Apache
Introducción a Servidor HTTP Apache
 

Introducción a Tomcat

  • 2. 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
  • 3. 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/
  • 4. 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
  • 5. 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
  • 6. 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/
  • 7. 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
  • 8. 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
  • 10. 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
  • 11. 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
  • 12. 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ó.
  • 13. Servlets Ciclo de vida 1. 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.
  • 15. 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.
  • 16. 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
  • 17. JSPs Sintaxis - Variables Implícitas  out: javax.servlet.jsp.JspWriter  page: java.lang.Object  exception: java.lang.Exception
  • 18. 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" %>
  • 19. 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" %>
  • 20. 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%>
  • 21. 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).
  • 22. 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.
  • 24. 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
  • 26. 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.
  • 27. 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.
  • 28. 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.
  • 29. 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.
  • 30. 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.
  • 31. 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.
  • 33. 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.
  • 34. 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/
  • 35. Servicios web Ejemplo WS + Axis2 + Tomcat6
  • 36. 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/
  • 38. 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.
  • 39. 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.
  • 40. 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
  • 41. Java Web Start - JNLP Ejecutar aplicación JNLP
  • 42. 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/
  • 43. 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.
  • 44. 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
  • 45. APACHE TOMCAT FIN Iker Canarias iker.canarias@gmail.com