Your SlideShare is downloading. ×
0
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Introducción a Tomcat
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introducción a Tomcat

9,365

Published on

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

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

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
9,365
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
200
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ServidorAPACHE TOMCAT
  • 2. IntroducciónConceptos 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ónConceptos 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ónConceptos 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ónEstructura 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ónEstructura 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ónInstalación y ejecución  Instalar Java  Descargar http://tomcat.apache.org/download-60.cgi  Descomprimir Tomcat  Arrancar ./startup.sh  Parar ./shutdown.sh
  • 8. IntroducciónInstalació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
  • 9. IntroducciónTomcat Manager
  • 10. ConfiguraciónFicheros 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ónFicheros 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. ServletsConceptos 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. ServletsCiclo 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.
  • 14. ServletsEjemplo de Servlet
  • 15. JSPsConceptos 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. JSPsSintaxis - 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. JSPsSintaxis - Variables Implícitas  out: javax.servlet.jsp.JspWriter  page: java.lang.Object  exception: java.lang.Exception
  • 18. JSPsSintaxis - 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. JSPsSintaxis - 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. JSPsScriptlets  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. JSPsEtiquetas 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. JSPsEtiquetas 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.
  • 23. JSPsEjemplo de JSP
  • 24. JavaBeansConceptos 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
  • 25. JavaBeansEjemplo de JavaBean
  • 26. Servicios webConceptos 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 webEstá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 webEstá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 webVentajas  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 webInconvenientes  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.
  • 32. Servicios webEsquema general
  • 33. Servicios webEsquema 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 webAXIS2 (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 EjemploWS + Axis2 + Tomcat6
  • 36. Servicios webSOAPUI  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/
  • 37. Servicios webInstalar SoapUIProbar un WS
  • 38. Java Web Start - JNLPConceptos 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 - JNLPConceptos 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 - JNLPConceptos 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 Ejecutaraplicación JNLP
  • 42. Apache StrutsConceptos 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 StrutsMVC - 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 ANTConceptos 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

×