Guía completa para montar un Servlet con Java, Tomcat y Ant Explicado paso a paso (Windows)

Tomcat

Despues de perderme en multiples ocasiones para poder montar mi primer Servlet de Java y luego de obtener un poco de experiencia en ello, decidí hacer una guía que concretamente muestre, sin pasos escondidos, lo que hay que hacer de inicio a fin para montar un Servlet simple.

Pero antes, Qué es un Servlet de Java?

Un Servlet es un objeto de java que pertenece a una clase que extiende de javax.servlet.http.HttpServlet, este nos permite crear aplicaciones web dinámicas, lo que quiere decir que podemos realizar consultas, insertar y eliminar datos.

Son pequeños programas (applets) escritos en Java que admiten peticiones a través del protocolo HTTP. Los servlets reciben peticiones desde un navegador web, las procesan y devuelven una respuesta al navegador, normalmente en HTML. Para realizar esto pueden utilizar las herramientas del lenguaje Java.

Qué es un contenedor de Servlets?

Un contenedor de Servlet es un programa capaz de recibir peticiones de páginas web y redireccionar estas peticiones a un objeto Servlet en específico.

Uno de los más populares es Apache Tomcat.

Cómo funcionan los contenedores de Servlets?

El Browser pide una página al servidor HTTP que es un contenedor de Servlets
 El contenedor de Servlets delega la petición a un Servlet en particular elegido de entre los Servlets que contiene.
 El Servlet, que es una objeto java, se encarga de generar el texto de la página web que se entrega al contenedor.
 El contenedor devuelve la página web al Browser que la solicitó.

Qué es Apache Ant?

Apache Ant es una herramienta usada en programación para la realización de tareas mecánicas y repetitivas, normalmente durante la fase de compilación y construcción (build). Es, por tanto, un software para procesos de automatización de compilación.

Esta herramienta, hecha en el lenguaje de programación Java, tiene la ventaja de no depender de las órdenes del shell de cada sistema operativo, sino que se basa en archivos de configuración XML y clases Java para la realización de las distintas tareas, siendo idónea como solución multi-plataforma.

Ok, ahora si empecemos!

Antes que nada vamos a instalar un IDE (en este caso utilizaremos Eclipse) para poder hacer el desarrollo y ya que estamos desarrollando en Java vamos a necesitar el JDK. Si ya tienes este software instalado entonces puedes ir directamente al paso #3.

Paso #1

Para descargar el IDE de Eclipse con Plugin de Java nos vamos a:

https://www.eclipse.org/downloads/eclipse-packages/

Y elegimos, Eclipse IDE for Java Developers en la version respectiva de nuestro sistema operativo (32 o 64 bits)

Luego damos click en Download para obtener el zip del programa y al terminar la descarga lo descomprimimos en la carpeta >C:\Archivos De Programa

Ingresamos en la carpeta eclipse y damos click derecho en el ícono del programa, luego

> Nuevo > Acceso Directo. Copiamos y pegamos el acceso directo en el escritorio.

Paso #2

Muy bien ahora vamos a instalar el Java Development Kit (en este caso utilizaremos la version 8), para esto ingresamos a la página:
 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

En ella elegímos la versión correcta para nuestro sistema operativo y al terminar la descarga lo ejecutamos.
 El Wizard de instalación nos mostrará la siguiente ventana en la cual daremos click en Next.

Dejamos la carpeta de destino como está y damos click en Next.

Listo! El JDK ya está instalado y damos click en Close.

Paso #3

Lo siguiente es Descargar Tomcat, para ello ingresamos a :

https://tomcat.apache.org
 Del lado derecho se listan las versiones existentes alli elegímos la ultima versión disponible, en este caso la 9.

Bajo Binary Distributions encontraremos la opción Zip con la versión para nuestro sistema operativo, la descargamos y la descomprimimos.

Luego vamos a renombrar la carpeta como “tomcat” y la pegaremos en el disco C:\

Ahora entramos al directorio conf y abrimos el archivo server.xml en el buscaremos la linea:

<Connector port=”8080″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />

Y cambiaremos el puerto a 9090 o al puerto de su elección con el fin de no tener problemas ya que si otro servicio esta utilizando el puerto de tomcat este no se va a poder iniciar.

Por ultimo vamos a correr el servicio ingresando el siguiente comando en el CMD:

%CATALINA_HOME%\bin\startup.bat

Si todo salio bien, al ingresar a la dirección 127.0.0.1:9090 deberiamos de ver una pantalla como la siguiente:

Genial! Tomcat ya está funcionando.
 Para detener el servicio el comando es:

%CATALINA_HOME%\bin\shutdown.bat

Paso #4

Ahora Descargamos Apache Ant ingresando a:
 http://ant.apache.org/bindownload.cgi
 Alli encontraremos las ultimas versiones disponibles y escogemos cualquiera de las versiones en Zip.

De nuevo descomprimimos el archivo lo renombramos a “ant” y pegamos ese directorio en el C:\

Paso #5

Lo siguiente que haremos es crear las variables de entorno, esto nos sirve para poder ejecutar las herramientas que acabamos de instalar desde el simbolo de sistema de Windows.

Para lograrlo debemos ingresar a:
 Click derecho en Mi PC > Propiedades > Configuracion avanzada del sistema >

Elegimos la pestaña de Opciones Avanzadas > Variables de Entorno > Nueva

En el Valor de la variable debemos de ingresar la dirección en la que se encuentra el directorio principal del programa que necesitamos en el caso del JDK usualmente va a estar ubicado en Program Files o Archivos de Programa, en este caso vamos a utilizar el jdk1.8.0_121 por lo que nuestra dirección es:
 C:\Program Files\Java\jdk1.8.0_121
 Y el nombre de la variable será JAVA_HOME.

De la misma manera debemos crear la variable de Tomcat que quedaría como:
 Nombre: CATALINA_HOME

Valor: C:\tomcat
 Y la variable de Ant que quedaría:
 Nombre: ANT_HOME

Valor: C:\ant
 Luego de esto debemos editar la variable de entorno PATH, damos click en editar y al final del valor pegamos lo siguiente sin dejar espacios:

;%JAVA_HOME%\bin;%CATALINA_HOME%\bin;%ANT_HOME%/bin;

Esto nos servirá para referirnos al directorio donde se encuentran los binarios de los programas que acabamos de ingresar.
 Si todo esta correcto al ingresar los siguientes comandos en el CMD deberíamos de obtener las direcciones que anteriormente asignamos:

SET ANT_HOME
SET CATALINA_HOME
SET JAVA_HOME
SET PATH

Paso #6

Ahora ejecutamos Eclipse

Ya que es la primera vez que entramos, nos va a preguntar si queremos cambiar el directorio donde se guardarán todos nuestros proyectos por default, damos click en Ok.

En la pantalla principal vamos a la pestaña de Help > Install New Software

Estando alli elegímos la versión de eclipse que tenemos para que nos liste las herramientas que podemos descargar.

Damos click en la categoría Web y seleccionamos los siguientes paquetes:

Damos click en Next > Next, aceptamos los terminos y condiciones y click en Finish y por ultimo reiniciamos eclipse.

Paso #7

Bien ahora vamos a agregar tomcat a eclipse, para ello vamos a Window > Preferences > Server > Runtime Environments

Damos click en Add y seleccionamos la versión que instalamos de Tomcat, en este caso la 9.0

Next e ingresamos el directorio donde esta ubicado tomcat

Click en Finish y Luego vamos de nuevo a Window > Other y seleccionamos la opción servers

Damos click en el link que nos aparece en pantalla y seleccionamos de nuevo la versión de Tomcat que vamos a utilizar.

Damos click en Finish y si Windows pregunta sobre permisos de Red le Permitimos el acceso.

Perfecto! Ahora estamos listos para desarrollar nuestro Servlet!

Paso #8

Primero debemos crear nuestro proyecto haciendo click en File > New > Other > Dynamic Web Project

Al proyecto lo llamaremos “helloWorld” damos click en Next

Chequeamos la casilla de generar el archivo web.xml y damos click en Finish.

Ahora le agregaremos un Servlet al proyecto, ingresamos a File > New > Servlet

El nombre del servlet será HelloServlet y damos click en Finish.
 En la nueva clase que se creó vamos a editar el codigo que está dentro de la función DoGet() para poder mostrar un sencillo Hello World en la pantalla principal de la página que se generará.
 Agregamos:

PrintWriter out = response.getWriter();
out.println(“HELLO WORLD”);

Listo ahora entramos al archivo web.xml y agregamos el siguiente codigo que servirá para mapear nuestro servlet:

<display-name>HelloWorld Application</display-name>
<description>
This is a simple web application with a source code organization
based on the recommendations of the Application Developer’s Guide.
</description>
 
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>helloPackage.HelloServlet</servlet-class>
</servlet>
 
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
También agregamos la linea
 
<welcome-file>hello.jsp</welcome-file>

En el listado de Welcome File ya que asi se llamará el nuestro.

Ahora crearemos los archivos hello.jsp e index.html en el directorio WebContent

Y por ultimo agregamos el archivo build.xml en el directorio principal del proyecto, este archivo será el que le indique a Ant como debe construir el proyecto para que tomcat pueda servirlo despues.
 Como base podemos crear un build.xml simple como el siguiente:

<?xml version=”1.0″ encoding=”UTF-8″ standalone=”no”?
<project name=”helloWorld” default=”help” basedir=”.”>
<!– Define the properties used by the build –>
<property name=”app.name” value=”helloWorld”/>
<property name=”tcserver.home” value=”C:\tomcat” />
<property name=”work.home” value=”${basedir}/work”/>
<property name=”dist.home” value=”${basedir}/dist”/>
<property name=”src.home” value=”${basedir}/src”/>
<property name=”web.home” value=”${basedir}/WebContent”/>
 
<target name=”help”>
<echo>You can use the following targets:</echo>
<echo> </echo>
<echo> help : (default) Prints this message </echo>
<echo> all : Cleans, compiles, and packages application</echo>
<echo> clean : Deletes work directories</echo>
<echo> compile : Compiles servlets into class files</echo>
<echo> dist : Packages artifacts into a deployable WAR</echo>
<echo></echo>
<echo>For example, to clean, compile, and package all at once, run:</echo>
<echo>prompt> ant all </echo>
</target>
<presetdef name=”javac”>
<javac includeantruntime=”false” />
</presetdef>
 
<!– Define the CLASSPATH –>
<path id=”compile.classpath”>
<fileset dir=”${tcserver.home}/bin”>
<include name=”*.jar”/>
</fileset>
<pathelement location=”${tcserver.home}/lib”/>
<fileset dir=”${tcserver.home}/lib”>
<include name=”*.jar”/>
</fileset>
</path>
<target name=”all” depends=”clean,compile,dist”
description=”Clean work dirs, then compile and create a WAR”/>
 
<target name=”clean”
description=”Delete old work and dist directories”>
<delete dir=”${work.home}”/>
<delete dir=”${dist.home}”/>
</target>
<target name=”prepare” depends=”clean”
description=”Create working dirs and copy static files to work dir”>
<mkdir dir=”${dist.home}”/>
<mkdir dir=”${work.home}/WEB-INF/classes”/>
<!– Copy static HTML and JSP files to work dir –>
<copy todir=”${work.home}”>
<fileset dir=”${web.home}”/>
</copy>
</target>
<target name=”compile” depends=”prepare”
description=”Compile Java sources and copy to WEB-INF/classes dir”>
<javac srcdir=”${src.home}”
destdir=”${work.home}/WEB-INF/classes”>
<classpath refid=”compile.classpath”/>
</javac>
<copy todir=”${work.home}/WEB-INF/classes”>
<fileset dir=”${src.home}” excludes=”**/*.java”/>
</copy>
</target>
<target name=”dist” depends=”compile”
description=”Create WAR file for binary distribution”>
<jar jarfile=”${dist.home}/${app.name}.war”
basedir=”${work.home}”/>
</target>
</project>

Cada función declarada por este archivo puede ser ejecutada con el comando ant, por ejemplo la función dist compila el proyecto y crea un archivo WAR que será el que leerá Tomcat.
 Si todo va bien el directorio del proyecto debería de verse como este:

Paso #9 Final

Excelente! Has llegado al final de este tutorial el ultimo paso es correr el comando de ant para construir el archivo WAR y levantar Tomcat que servira el archivo.
 Ingresamos al CMD y vamos a la carpeta donde se ubica el proyecto (en este caso):

cd C:\Users\<User>\workspace\helloWorld

Nos aseguramos de que tomcat no esté corriendo y ejecutamos el comando:

ant all

Ahora copiamos el archivo .war que creó Ant en la carpeta dist y lo pegamos en la carpeta:

C:\tomcat\webapps

Y ahora si corremos

%CATALINA_HOME%\bin\startup.bat

Si todo salio bien, podemos entrar en nuestro navegador favorito a la dirección:
 http://127.0.0.1:9090/helloWorld/hello

Y Listo!!! Hello World Con nuestro Java Servlet!

Desde mi Blog: Código Fuente y algo más…

Algunos links que podrían servir de ayuda:

http://tcserver.docs.pivotal.io/docs-tcserver/topics/tutwebapp.html

https://www.javatpoint.com/servlet-tutorial

Show your support

Clapping shows how much you appreciated valery briz’s story.