package org.apache.jsp; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; import org.apache.jasper.runtime.*; public class index_jsp extends HttpJspBase { private static java.util.Vector _jspx_includes; public java.util.List getIncludes() { return _jspx_includes; } public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { JspFactory _jspxFactory = null; javax.servlet.jsp.PageContext pageContext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; JspWriter _jspx_out = null; try { _jspxFactory = JspFactory.getDefaultFactory(); response.setContentType("text/html;charset=ISO-8859-1"); pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true); application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out; out.write("\r\n"); out.write("\r\n\t"); out.write("\r\n\t"); out.write("\r\n\t"); out.write("Programación de sistemas - Tomcat"); out.write("\r\n\t"); out.write("\r\n"); out.write("\r\n\t\r\n"); out.write("

Programación de Sistemas."); out.write("

\r\n"); out.write("

Generación de páginas en forma dinámica utilizando Apache \r\n Tomcat"); out.write("®"); out.write(".   "); out.write(""); out.write("\"Jakarta"); out.write(""); out.write("

\r\n\t\r\n\t\r\n\t\r\n\t\r\n"); out.write("

"); out.write("

"); out.write("

\r\n"); out.write("Presentación.ppt"); out.write("\r\n"); out.write("


\r\n"); out.write("

"); out.write("Introducción"); out.write(""); out.write("

\r\n \r\n"); out.write("

El proyecto Jakarta créa y mantiene soluciones de código abierto \r\n basadas en Java, sin costo alguno, uno de sus desarrollos es Tomcat."); out.write("
\r\n El servidor Jakarta-Tomcat, es uno de los proyectos de código abierto \r\n liderado por la "); out.write("Apache Software Foundation"); out.write(". El servidor Tomcat es una \r\n aplicación web basada en Java creada para ejecutar servlets y páginas \r\n JSP, siendo la implementación oficial de referencia de las especificaciones \r\n Servlet 2.3 y JavaServer Pages 1.2."); out.write("

\r\n"); out.write("

Antes de continuar, es necesario tener un conocimiento básico del concepto \r\n de Aplicación Web, que fue introducido en la versión 2.2 de la \r\n especificación servlet. De acuerdo con esta especificación, una \r\n aplicación web es una colección de servlets, páginas JSP, \r\n clases Java, archivos de descripción de la aplicación, documentos \r\n estáticos: HTML, XHTML, imágenes, etc. y otros recursos que pueden \r\n ser empaquetados y ejecutados en distintos servidores de diferentes proveedores. \r\n Es decir, una aplicación web se podría definir como la capa web \r\n de cualquier aplicación."); out.write("

\r\n"); out.write("
\r\n"); out.write("

"); out.write("Instalación"); out.write(""); out.write("

\r\n"); out.write("

Tomcat funciona bajo Java Development Kit. Primero usted debe tener o bajar \r\n e instalar algún JDK (http://java.sun.com/j2se/)"); out.write("
\r\n Luego será necesario que baje alguna distribución de Jakarta-Tomcat \r\n (http://jakarta.apache.org/tomcat)."); out.write("
\r\n Existen tres formas de instalar Tomcat: \r\n"); out.write("

\r\n"); out.write("

El uso de las herramientas ANT y CVS no será abordado en esta ocasión, \r\n pero podemos decir que ambas son herramientas para descargar y compilar las \r\n versiones de código fuente de Tomcat."); out.write("

\r\n En esta ocasión mostraremos como instalar la versión binaria para \r\nLinux."); out.write("

\r\n"); out.write("

Primero es necesario comprobar que la variable de ambiente JAVA_HOME esté definida \r\n y apunte al directorio de instalación del JDK."); out.write("
\r\n Esta variable se puede difinir en el archivo /etc/profile con los siguintes \r\n comandos para "); out.write("Bash."); out.write(""); out.write("

\r\n"); out.write("
\r\n  JAVA_HOME=/opt/jdk1.3\r\n  export JAVA_HOME");
      out.write("
\r\n"); out.write("

Una vez configurado el JDK, se extrae Tomcat desde el archivo que se descargó \r\n hacia un directorio, por ejemplo /usr/local/jakarta-tomcat-xxx."); out.write("

\r\n \r\n"); out.write("

Con esto se concluye la instalación de Tomcat en Linux. Para comprobar \r\n que todo está correcto, se puede levantar y bajar Tomcat, para lo cual \r\n se utilizan los comandos siguientes: "); out.write("

\r\n"); out.write("

TOMCAT_HOME/bin/startup.sh"); out.write("
\r\n TOMCAT_HOME/bin/shutdown.sh"); out.write("
\r\n"); out.write("

\r\n"); out.write("

Entiéndase como TOMCAT_HOME la ruta donde esta instalado Tomcat (en \r\n nuestro caso /usr/local/jakarta-tomcat-xxx). Luego de subir el servidor (y antes \r\n de bajarlo) podemos ver en un navegador, por primera vez la pagina de inicio \r\n de Tomcat en la dirección "); out.write("http://localhost:8080"); out.write(""); out.write("

\r\n"); out.write("

"); out.write("\"Ejecutando"); out.write("
\r\n"); out.write("

\r\n"); out.write("

En la página de inicio de nuestro servidor es posible acceder documentación \r\n de Tomcat, así como también es posible acceder a las aplicaciones \r\n de ejemplo, administración y manejo de Tomcat."); out.write("

\r\n"); out.write("

"); out.write(""); out.write("
\r\n"); out.write("

\r\n"); out.write("
\r\n"); out.write("

"); out.write("Funcionamiento"); out.write(""); out.write("

\r\n"); out.write("

Ahora, para acceder a las aplicaciones de adminitración y manejo de \r\n Tomcat debemos agregar un usuario de tipo \"admin\" y/o de tipo \"manager\" en el \r\n archivo de configuración TOMCAT_HOME/conf/tomcat-users.xml, aquí \r\n un ejemplo. "); out.write("

\r\n"); out.write("

"); out.write(" "); out.write("

\r\n"); out.write("

Luego debemos reiniciar Tomcat para que los cambios tengan efecto."); out.write("
\r\n De esta manera estamos en condiciones de comenzar a utilizar la aplicaión \r\n de manejo de Tomcat (Manager), primero se debe ingresar con el nombre y la contraseña \r\n definidos para el rol "manager", una vez dentro podemos encontrar \r\n información de las aplicaciones que se alojan en el servidor junto con \r\n la posibilidad de recargarlas, bajarlas, levantarlas o removerlas. Además \r\n es posible realizar el Deployment de una nueva aplicación ya sea subiéndola \r\n en forma de un archivo WAR (Web ARchive) o indicando una dirección dentro \r\n del mismo servidor. "); out.write("

\r\n"); out.write("

"); out.write(""); out.write("

\r\n"); out.write("

Por otro lado existe la aplicación de adminitrador, la que permite manejar \r\n las variables de entorno del servidor y de sus aplicaciones. En una primera \r\n vista podemos encontrar el manejo de los usuarios y los recursos del servidor \r\n (conexión a bases de datos, sesiones para el manejo de mails y variables \r\n de entorno). Luego dentro de la configuración del servidor (Tomcat-Standalone) \r\n encontramos la vista de los distintos conectores, loggers y dentro de la sección \r\n Host podemos encontrar la configuración de las aplicaciones residentes \r\n en el servidor."); out.write("

\r\n"); out.write("

"); out.write(""); out.write("

\r\n"); out.write("

Tomcat estructura sus directorios de la siguiente manera:\r\n"); out.write("

\r\n"); out.write("

\r\n"); out.write("
\r\n"); out.write("

"); out.write("Deployment"); out.write(""); out.write("

\r\n"); out.write("

El deployment de una aplicación consiste en cómo organizar los \r\n archivos y los directorios de manera de que Tomcat sepa donde encotrar lo que \r\n necesita para realizar sus funciones correctamente."); out.write("

\r\n"); out.write("

Una aplicación Web esta definida como una organización de archivos \r\n y directorios en un orden preestablecido. Esta organización de archivos \r\n puede ser accesada en su forma "natural" donde cada directorio y archivo \r\n existe en forma separada, o en su forma "comprimida" (WAR) donde todo \r\n la organización esta comprimida en un solo archivo, (esto se puede lograr \r\n via JAR). La forma "natural" es preferida durante el desarrollo de \r\n una aplicación, mientras que la forma comprimida se prefiere para distribuir \r\n una versión final a los distintos servidores."); out.write("

\r\n"); out.write("

El directorio base de su organización de archivos es también \r\n la carpeta raíz de su aplicación. Aquí es donde deben ir \r\n los archivos html y jsp, también pueden ir directorios que contengan \r\n de manera mas ordenada este mismo tipo de archivos. Los archivos con clases \r\n java o servlet deben ir en directorios separados de la siguiente manera:"); out.write("

\r\n \r\n"); out.write("\r\n"); out.write("

El archivo web.xml contiene la configuración de la aplicación \r\n web y define todo lo que la aplicación requiera saber sobre el servidor \r\n sobre el cual esta corriendo. Su sintáxis puede ser consultada en el \r\n capitulo 13 de las especificaciones de API Servlet. La idea es que éste \r\n archivo pueda ser provisto por alguna aplicación encargada del deployment. \r\n"); out.write("

\r\n\r\n"); out.write("

Aquí se puede ver el archivo "); out.write("web.xml"); out.write(" \r\n de la aplicación test."); out.write("

\r\n"); out.write("

Existen varias formas de realizar el deployment de una aplicación en \r\n Tomcat:"); out.write("

\r\n"); out.write("

Copiar la aplicación en su forma "natural" (unpacked) al directorio \r\n TOMCAT_HOME/webapps/. Tomcat asignará un Context a su aplicación \r\n basado en el nombre del subdirectorio escogido. Esta técnica es la manera \r\n mas rápida y cómoda para crear el archivo "); out.write("web.xml"); out.write(". Debe \r\n reiniciar Tomcat para subir su aplicación."); out.write("

\r\n"); out.write("

Copie su aplicación en forma de WAR dentro del directorio TOMCAT_HOME/webapps/. \r\n Cuando Tomcat se inicie el automáticamente descomprimirá su aplicación \r\n y la ejecutará. Este método es usado típicamente para instalar \r\n aplicaciones adicionales."); out.write("

\r\n"); out.write("

Usando el manejador de Tomcat (Manager) para realizar el deployment de su aplicación \r\n sin necesidad de reiniciar Tomcat y de manera remota."); out.write("

\r\n"); out.write("

Agregar un Context en el archivo TOMCAT_HOME/conf/server.xml directamente o \r\n desde la aplicación "Tomcat Administrator", donde se puede \r\n definir el lugar donde reside la aplicación y las propiedades con las \r\n que contará. Esto equivale a realizar el trabajo "a mano". \r\n Luego es necesario reiniciar Tomcat para poder ver los cambios."); out.write("
\r\n"); out.write("

\r\n\r\n"); out.write("
\r\n"); out.write("

"); out.write("Ejemplos"); out.write(""); out.write("

\r\n"); out.write("

Los ejemplos se incluyen en el anexo."); out.write("

\r\n"); out.write("

"); out.write("Enviar \r\n datos a la pagina."); out.write("  "); out.write("(Codigo \r\n fuente de la pagina.)"); out.write(" "); out.write("
\r\n"); out.write("Ejemplo \r\n de pagina dinamica."); out.write("  "); out.write("(Codigo \r\n fuente de la pagina.)"); out.write(" "); out.write("
\r\n "); out.write("Enviar \r\n Mail usando un Servlet."); out.write("  ("); out.write("Codigo \r\n fuente de la pagina"); out.write("  "); out.write("y \r\n el servlet"); out.write("). "); out.write("
\r\n"); out.write("

"); out.write("Enviar Datos a Página"); out.write(""); out.write("

\r\n"); out.write("

La aplicación permite enviar un mensaje a través de un método \r\n "); out.write("get"); out.write(" o "); out.write("post"); out.write(" . La información es recibida por la página \r\n dinámica."); out.write("

\r\n"); out.write("

"); out.write("Pagina Dinámica"); out.write(""); out.write("

\r\n"); out.write("

Página JSP que despliega la información enviada por la página \r\n de envío de datos. Además contiene información (IP, puerto) \r\n del servidor Tomcat y del host remoto (máquina cliente), junto con obtener \r\n información del browser utilizado."); out.write("

\r\n"); out.write("

"); out.write("Envío de Mail usando Servlet"); out.write(""); out.write("

\r\n"); out.write("

En ésta página se puede enviar un correo electrónico utilizando \r\n javax.mail. Durante el envío se verifica las direcciones de correo, y \r\n arroja un error en caso de ser no válidas."); out.write("

\r\n"); out.write("

Se pueden ver los Servlet's creados por Tomcat a partir de las páginas \r\n "); out.write("jsp"); out.write(" existentes en la \r\n carpeta "); out.write(""); out.write("TOMCAT_HOME/work/Standalone/localhost/test"); out.write(""); out.write(" "); out.write("
\r\n "); out.write("
\r\n Aquí se puede ver el archivo "); out.write("web.xml"); out.write(" \r\n de la aplicación test. que permite setear el mail del autor"); out.write("
\r\n "); out.write(""); out.print(getServletContext().getInitParameter("e-mail")); out.write("\r\n"); out.write(""); out.write("

\r\n"); out.write("
\r\n"); out.write("

"); out.write("Conclusiones"); out.write(""); out.write("

\r\n"); out.write("

Una vez instalado el Tomcat, para añadir nuevos servlets sólo \r\n se tiene que crear la estructura de directorios explicada y subirla al servidor \r\n (ya sea en forma manual, reiniciando el servidor Tomcat o mediante el manager). \r\n Usar el manager puede parecer más inseguro que subir a mano, pero para \r\n desarrollar un servlet medianamente complicado se hace casi imprescindible."); out.write("

\r\n"); out.write("

Se han dejado varias cosas en el tintero. El uso de los archivos WAR, que no \r\n son más que la anterior estructura de directorios, pero en forma comprimida \r\n (son el equivalente en servlets a los archivos JAR normales), no se abarcó \r\n el uso de herramientas para el Deployment. La posibilidad de hacer que todas \r\n las peticiones al Apache se redirijan a Tomcat. Tampoco se comentó el \r\n sistema de hosts virtuales del Tomcat, o los sistemas de seguridad adicionales."); out.write("
\r\n"); out.write("

\r\n"); out.write("
\r\n"); out.write("

"); out.write(""); out.write(""); out.write("Referencias"); out.write(""); out.write(""); out.write(""); out.write("

\r\n"); out.write("

Páginas con documentracion interesante. "); out.write("
\r\n"); out.write("

\r\n"); out.write("\r\n"); out.write("
\r\n"); out.write("\r\n"); out.write("\r\n"); } catch (Throwable t) { out = _jspx_out; if (out != null && out.getBufferSize() != 0) out.clearBuffer(); if (pageContext != null) pageContext.handlePageException(t); } finally { if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext); } } }