====== JavaEE ======
===== Introducción =====
Una aplicación web en JavaEE tiene una estructura concreta. En la raíz de la aplicación debe existir el directorio **WEB-INF**; dentro de este habrá como mínimo dos directorios más **classes** (donde estarán los compilados de nuestra aplicación) y **lib** (donde importaremos las librerías para nuestra aplicación). En WEB-INF también incluiremos el archivo //web.xml// y otros archivos de configuración, también podremos encontrar la carpeta //src// con el código fuente de la aplicación.
* ** Notas **
Una aplicación web puede ser guardada en un archivo .war que después podremos subir a nuestro server y que se instalará automáticamente.
===== Tecnologías =====
* [[sp:j2ee:servlets|Servlets]]
* [[sp:j2ee:jsp|JSP]]
* [[sp:j2ee:jstl|JSTL]]
===== Páginas de ejemplo =====
==== JSP ====
<% for (int i=0; i<10; i++) { %>
Hola mundo!!
<% } %>
==== Servlet ====
package org.miwebapp;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MiServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
java.io.PrintWriter writer = response.getWriter();
writer.setContentType("text/html");
for (int i=0; i<20; i++)
writer.println("Hola munundo!!
");
}
}
==== web.xml ====
jspHello
This is my first jsp-app.
First
org.miwebapp.MiServlet
First
/prueba_servlet
Este web.xml indica que la aplicación tendrá como nombre //jspHello//, descripción //This is my first jsp-app//. Declara un servlet llamado //First// que corresponde a la clase //org.miwebapp.MiServlet// y luego lo enlaza con el nombre //prueba_servlet//. De esta forma para lanzar la clase MiServlet habría que hacer ////prueba_servlet//. \\ \\
{{sp:jsp:web.xml.txt|Ejemplo de web.xml}}
===== Tomcat =====
==== Configuración ====
=== Añadir usuarios ===
En el archivo //conf\tomcat-users.xml// añadiríamos:
=== Cambiar puerto de la aplicación ===
En el archivo //conf\server.xml// se definen cosas como esta; la siguiente línea es la que indica por qué puerto sirve Tomcat sus peticines HTTP.
==== Enlace con Apache ====
Para poder enlazar correctamente el servidor web Apache y Tomcat, se ha de tener instalado y activado en el primero el módulo **mod_jk**. \\
Necesitaremos crear un archivo de configuración en apache con una pequeña configuración para tomcat, java y para un worker:
workers.tomcat_home=/usr/local/apache-tomcat-5.5.16/
workers.java_home=$JAVA_HOME
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1
En la configuración de Apache deberemos indicar unos parámetros (por ejemplo para decir qué archivo estamos utilizando (JkWorkersFile) o donde se guardarán los logs de la relación Apache-Tomcat:
JkWorkersFile "conf/workers"
JkLogFile "logs/mod_jk.log"
JkLogLevel warn
Ahora, para enlazar una aplicación Tomcat con Apache usaremos la directiva JkMount para especificar qué archivos debe ejecutar Tomcat.
JkMount /jsp-examples default
JkMount /jsp-examples/* default
JkMount /jsp-examples/*.jsp default
==== Notas ====
* Cuando se agrega una nueva aplicación a Tomcat, este ha de reiniciarse.
===== Archivos =====
* El libro //Core Servlets and JavaServer
ages// ha sido el usado para los apartados de Servlets y JSP.