Abr 02 2009

Tomcat (III): Mi primera página

Categoría: DAD,InformáticaMiguel Angel @ 18:17

TomcatEn esta entrada, continuando con las dos anteriores, donde hemos instalado tomcat y configurado eclipse, vamos a escribir nuestra primera aplicación y a explicar brevemente la estructura de directorios de una aplicación en Tomcat.

Como ya se comentó en la primera, todas las aplicaciones en Tomcat se encuentran dentro del directorio webapps del mismo. Bueno… eso no es del todo cierto ya que, como veremos más adelante, se puede configurar el servidor para que «coja» también las aplicaciones de un directorio que se encuentra fuera Tomcat.

Por defecto, tendremos una carpeta por aplicación dentro de webapps. y accesible a través de la url http://localhost:8080/nombreAplicacion/. Lo mejor es probarlo…

  1. Ir al directorio ..\Tomcat\webapps\
  2. Crear una nueva carpeta miServidor.
  3. Añadir un fichero index.html y editarlo para incluir el siguiente código:
    <html><body>Hola Mundo</body></html>
  4. Arrancar el servidor.
  5. Ir la siguiente dirección para comprobar que aparece la página: http://localhost:8080/miServidor/

Hasta este punto el servidor Tomcat no difiere mucho de cualquier otro. Es decir, un directorio que hace de raíz de la aplicación donde se guardan todas las páginas o archivos accesibles a través de url. La principal diferencia es que en Tomcat existe una carpeta especial y cuyo contenido no es referenciable mediante url. Dicha carpeta se denomina WEB-INF y dentro de ella podemos encontrar:

  • Directorio classes: que contiene todos los ficheros .class que utiliza nuestra aplicación. Por ejemplo, los servlets.
  • Directorio lib: que contiene las librerías (.jar) necesarias. Por ejemplo, la de mysql o la de apache Tiles (para el sistema de plantillas).
  • Directorio src: que contiene los ficheros fuente (.java) de nuestra aplicación. Serán compilados para generar los .class.
  • Fichero web.xml. Muy importante, ya que todos los parámetros de configuración específicos para nuestra aplicación se encuentran en él.

Pues bien, todo esto se puede hacer «a mano» dentro del directorio webapps antes mencionado. Pero lo interesante es hacerlo con eclipse. Así que, vamos con ello.

  1. File->New->Other…
  2. Desplegamos Java,  seleccionamos Tomcat Project y pulsamos en el botón Next.
  3. Introducimos el nombre de nuestro proyecto app, que también será el del contexto (http://localhost:8080/app/), y pulsamos en Finish.

Ya tenemos nuestro proyecto listo para ejecutarse. Ahora necesitamos el fichero index.html para que se muestre como página de bienvenida. Pero antes veamos como nos muestra eclipse la estructura de directorios.

estructuradireclipsetomcat

Lo único que parece diferente es que aparecen dos carpetas WEB-INF: WEB-INF/src y WEB-INF. Realmente es la misma, lo que pasa es que eclipse se ha «llevado» los fuentes a una estructura de directorios diferente aunque físicamente esté en la misma carpeta. Por tanto, a la hora de crear paquetes  y clases en eclipse lo haremos sobre WEB-INF/src.

Si hacemos clic con el botón derecho sobre app y añadimos un nuevo fichero, index.html, que contenga el siguiente código:

<html><body>
<form action="servlet/Control" method="POST">
    <input id="nombre" name="nombre" size="20"/>
    <input type="submit" />
</form>
</body></html>

Ya podemos acceder a la página (http://localhost:8080/app) una vez arrancado Tomcat. Recuerda que todo lo que cuelgue de app estará en la raíz de la aplicación.

Puede aparecer un problema, que Tomcat no tenga ni idea de qué es el contexto app. Y es lógico, por defecto Tomcat sólo coge los contextos (subcarpetas) definidos dentro del directorio webapps. Así que hay que decirle que también coja los que están fuera de esa carpeta. Así que…

  1. Botón derecho sobre app.
  2. Tomcat Project -> Update Context Definition. Puede salir un mensaje de error si no hemos configurado el usuario administrador en Window -> Preferences -> Tomcat -> Tomcat Manager App (hay que pulsar el botón Add user to tomcat-user.xml.

Este paso lo que hace es añadir una entrada parecida a esta en el fichero Tomcat\conf\server.xml

<Context path/app« reloadabletrue« docBaseF:\workspace\app« workDirF:\workspace\app\work« />

Que, como se puede observar, especifica el nombre del contexto, app, y la ruta donde se encuentra, «F:\workspace\app».

Etiquetas:

Dejar una respuesta