SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
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

Comparacion software comercial vs libre (Gestores De Base De Datos)
Comparacion software comercial vs libre (Gestores De Base De Datos)Comparacion software comercial vs libre (Gestores De Base De Datos)
Comparacion software comercial vs libre (Gestores De Base De Datos)Oscar Ruiz Zapata
 
c++ introduccion
c++ introduccionc++ introduccion
c++ introduccionjennipaola
 
Evaluacion de arquitecturas
Evaluacion de arquitecturasEvaluacion de arquitecturas
Evaluacion de arquitecturasSamis Ambrocio
 
4. Diseño e Implementación de Software
4. Diseño e Implementación de Software4. Diseño e Implementación de Software
4. Diseño e Implementación de SoftwareMario A Moreno Rocha
 
Modelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareModelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareWilliam Matamoros
 
Arquitectura y caracteristicas de los sistemas operativos windows
Arquitectura y caracteristicas de los sistemas operativos windowsArquitectura y caracteristicas de los sistemas operativos windows
Arquitectura y caracteristicas de los sistemas operativos windowsslipkdany21
 
MySQL. Tutorial Básico
MySQL. Tutorial BásicoMySQL. Tutorial Básico
MySQL. Tutorial BásicoJosu Orbe
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software Brihany Rossell
 
Modelado de requisitos
Modelado de requisitosModelado de requisitos
Modelado de requisitosKleo Jorgee
 
Sistemas operativos-moviles-terminado
Sistemas operativos-moviles-terminadoSistemas operativos-moviles-terminado
Sistemas operativos-moviles-terminadoJhon Condori
 

La actualidad más candente (20)

Comparacion software comercial vs libre (Gestores De Base De Datos)
Comparacion software comercial vs libre (Gestores De Base De Datos)Comparacion software comercial vs libre (Gestores De Base De Datos)
Comparacion software comercial vs libre (Gestores De Base De Datos)
 
c++ introduccion
c++ introduccionc++ introduccion
c++ introduccion
 
Examen
ExamenExamen
Examen
 
Evaluacion de arquitecturas
Evaluacion de arquitecturasEvaluacion de arquitecturas
Evaluacion de arquitecturas
 
Antecedentes MSF
Antecedentes MSFAntecedentes MSF
Antecedentes MSF
 
C3 lenguaje de presentación.
C3 lenguaje de presentación.C3 lenguaje de presentación.
C3 lenguaje de presentación.
 
Bases de datos orientadas a objetos
Bases de datos orientadas a objetosBases de datos orientadas a objetos
Bases de datos orientadas a objetos
 
4. Diseño e Implementación de Software
4. Diseño e Implementación de Software4. Diseño e Implementación de Software
4. Diseño e Implementación de Software
 
Modelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareModelos o Ciclos de vida de software
Modelos o Ciclos de vida de software
 
Arquitectura y caracteristicas de los sistemas operativos windows
Arquitectura y caracteristicas de los sistemas operativos windowsArquitectura y caracteristicas de los sistemas operativos windows
Arquitectura y caracteristicas de los sistemas operativos windows
 
MySQL. Tutorial Básico
MySQL. Tutorial BásicoMySQL. Tutorial Básico
MySQL. Tutorial Básico
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software
 
Modelado de requisitos
Modelado de requisitosModelado de requisitos
Modelado de requisitos
 
Gestion de memoria en Linux
Gestion de memoria en LinuxGestion de memoria en Linux
Gestion de memoria en Linux
 
Sistemas operativos-moviles-terminado
Sistemas operativos-moviles-terminadoSistemas operativos-moviles-terminado
Sistemas operativos-moviles-terminado
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
SGBD Postgresql
SGBD PostgresqlSGBD Postgresql
SGBD Postgresql
 
Laravel
LaravelLaravel
Laravel
 
Metodologia Incremental
Metodologia IncrementalMetodologia Incremental
Metodologia Incremental
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 

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 IISelianaespinoza
 
Introducción a JBoss
Introducción a JBossIntroducción a JBoss
Introducción a JBossIker Canarias
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticasIker Canarias
 
Tomcat configuration
Tomcat configurationTomcat configuration
Tomcat configurationDima Gomaa
 
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 EclipseStalin Eduardo Tusa Vitar
 
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 IISAnthony Mejias
 
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 Tomcatjubacalo
 
Fraiche / Listados disponibles 2017
Fraiche / Listados disponibles 2017Fraiche / Listados disponibles 2017
Fraiche / Listados disponibles 2017Luz 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 LitteratureSais 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 2Dra Ja
 
¿ Compras lo que quieres ?
¿ Compras lo que quieres ?¿ Compras lo que quieres ?
¿ Compras lo que quieres ?Cova Linares
 

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 Apache Tomcat: Introducción al servidor web Java

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 JavaEudris Cabrera
 
[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 JavaEudris Cabrera
 
Java WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRsJava WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRsHernan Rengifo
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web javaCé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 javaEudris Cabrera
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicionFlashnet S.A
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xmlgilhorak
 
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.pptBYRONMIGUELSUBUYUCPA
 
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-2006Samuel Marrero
 
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 DeveloperOscar 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-2006Samuel Marrero
 
Introduccion Ajax V1.0
Introduccion Ajax V1.0Introduccion Ajax V1.0
Introduccion Ajax V1.0Arnulfo Gomez
 

Similar a Apache Tomcat: Introducción al servidor web Java (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 softwareIker Canarias
 
Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache AntIker Canarias
 
Introducción a JUnit
Introducción a JUnitIntroducción a JUnit
Introducción a JUnitIker Canarias
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones JavaIker Canarias
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en JavaIker 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 softwareIker Canarias
 
Introducción a Servidor HTTP Apache
Introducción a Servidor HTTP ApacheIntroducción a Servidor HTTP Apache
Introducción a Servidor HTTP ApacheIker 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
 

Apache Tomcat: Introducción al servidor web Java

  • 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