Tabla de Contenidos
Servidores de Aplicaciones
Un servidor de aplicaciones es un programa informático que se encarga de ejecutar aplicaciones y proporcionar servicios a otros programas o dispositivos en una red, tales como gestión de sesiones, gestión de transacciones, o gestión de acceso a datos.
Los servidores de aplicaciones se utilizan para ejecutar aplicaciones web, aplicaciones móviles, aplicaciones de escritorio o aplicaciones empresariales. Algunos ejemplos de servidores de aplicaciones comunes son Apache Tomcat o GlashFish para Java, Microsoft IIS para el framework .NET, incluso hay servidores de aplicaciones para PHP, que facilitan la gestión de las aplicaciones.
Servidores de Aplicaciones Java
El término servidor de aplicaciones hace referencia a un servidor de aplicaciones creadas Java EE (Enterprise Edition). Java EE es un proyecto que ha dejado de ser mantenido por Oracle, y es Eclipse Foundation quien se encarga actualmente de mantenerlo bajo el nombre Jakarta EE, debido a cuestiones de derechos de marca.
Mediante esa especificación de Java, podemos crear diferentes tipos de aplicaciones. En este bloque nos vamos a centrar en el contenedor Web, en el cual podemos crear y ejecutar Java Servlet y Java Server Pages.
Dos de los más utilizados son:
- Apache Tomcat: mantenido por Apache Software Foundation
- Eclipse Glashfish: mantenido por Eclipse Foundation
¿Por qué Java?
La principal ventaja de utilizar Java para crear aplicaciones web frente a otros lenguajes, es que Java es un lenguaje de propósito general que excede el mundo web y que es apto para crear clases que manejen lógica de negocio y acceso a datos de una manera apropiada.
Esto permite que una aplicación web pueda estar separadas en diferentes clases de Java como si fuera una aplicación orientada a objetos, dejando la parte encargada de generar el documento HTML en el archivo JSP o en el Servlet.
Java Servlets
Un servlet es una clase Java que hereda de la clase HttpServlet
, y es utilizada para ampliar las capacidades de un servidor. Se ejecutan como respuesta a solicitudes Http, dando acceso a contenido dinámico (como haría otro lenguaje como PHP o Python).
Como los servlets son aplicaciones escritas y compiladas en Java pueden utilizar cualquier sentencia de Java, como estructuras de datos, acceso a ficheros, acceso a bases de datos.
A continuación vemos un ejemplo:
public class EjemploServlet extends HttpServlet { . . . @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>EjemploServlet</title></head>"); out.println("<body>"); out.println("<h1>¡Hola soy un servlet!</h1>"); out.println("</body></html>"); out.close(); } }
Java Server Pages
JavaServer Pages (JSP) es una tecnología que ayuda a los desarrolladores de software a crear páginas web dinámicas basadas en HTML. JSP es similar a PHP, pero usa el lenguaje de programación Java.
El rendimiento de una página JSP es el mismo que tendría el servlet equivalente, ya que el código es compilado como cualquier otra clase Java.
- ejemplo.jsp
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Ejemplo JSP</title> </head> <body> <H1>Ejemplos de expresiones</H1> <%-- Mostrar la fecha y hora actual --%> <%= LocalDateTime.now().toString() %><br> <%-- Resultado de una expresión aritmética --%> <%= (5+2)/(float)3 %><br> <%-- Generar un número aleatorio --%> <%= (int)(Math.random() * 100) %> </body> </html>
Apache Tomcat
Apache-Tomcat es un servidor web y contenedor de servlets usado para ofrecer aplicaciones Java. Es una implementación de código abierto de las tecnologías Java Servlet y Java Server Pages que se puede usar para compilar y ejecutar aplicaciones realizadas en Java. Está ofrecido por la Apache Software Foundation.
Para poder ejecutar Tomcat, es requisito tener instalado el servidor web Apache.
Instalación
Tomcat, además de ejecutar aplicaciones Java, está creado en lenguaje Java. Lo que primero necesitamos es instalar el JDK:
$ apt-get install default-jdk
Para continuar la instalación, es recomendable contar con un usuario con permisos administrativos (sudo). A continuación usaremos los repositorios de Debian para instalar la versión actual de Tomcat:
$ apt-get install tomcat9
Una vez instalado puedo manejar el servicio con el comando systemctl:
$ systemctl status tomcat9
Firewall
Para trabajar con Tomcat debemos añadir una regla para permitir conexiones en el puerto 8080, que el puerto por defecto de Tomcat.
$ ufw allow 8080
Configuración
Para trabajar con Tomcat de forma segura, necesitamos tener un usuario sin permisos. Primero vamos a crear el grupo, y después el usuario, añadiendolo directamente al grupo. Serán los encargados de iniciar el servicio Tomcat:
$ addgroup tomcat $ useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
A continuación vamos configurar el usuario encargado de Tomcat. Necesitamos edicat el fichero /etc/tomcat9/tomcat-users.xml
:
- /etc/tomcat9/tomcat-users.xml
<tomcat-users> . . . <role rolename="admin"/> <role rolename="admin-gui"/> <role rolename="manager"/> <role rolename="manager-gui"/> <user username="admin" password="password" roles="admin,admin-gui,manager,manager-gui"/> </tomcat-users>
En este momento podemos acceder al servidor a través de la URL http://localhost:8080
Instalación de herramientas
A continuación, instalaremos el gestor web de Tomcat y el host-manager, que nos ayudarán a trabajar con Tomcat:
$ apt-get install tomcat9-admin
Nos conectamos con el navegador http://localhost:8080/manager/html y usamos las credenciales indicadas en el fichero /etc/tomcat9/tomcat-users.xml
, para comprobar el gestor web.
Comprobamos también el acceso a http://localhost:8080/host-manager/html para comprobar Tomcat Virtual Host Manager; usamos las credenciales anteriores.
Desarrollo de Aplicaciones
Servlets
Java Server Pages
Prácticas
- Práctica 4 Configuración de Servidor de Aplicaciones
© 2025 Fernando Valdeón