Está en la página 1de 16

DIRECCIÓN GENERAL DE CÓMPUTO Y DE

TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN


Dirección de Docencia en TIC

DESARROLLO DE APLICACIONES WEB CON JAVA EE


Ejercicio 2
Primer Servlet, estructura de un sitio web según estándar J2EE

Nombre: ________________________________________________________ Fecha: _________________


Apellido Paterno Apellido Materno Nombre(s)
Calificación: _____________

Primer Servlet, estructura de un sitio web según estándar J2EE

Instrucciones:
Para realizar el despliegue de una aplicación web en Tomcat basta con crear un
directorio con el nombre de la aplicación dentro de webapps\. En la practica anterior
creamos la aplicación first_servlet e incluimos una pagina estática welcome.html.

Una aplicación web según las especificaciones de J2EE debe tener una estructura de
directorios y un archivo llamado web.xml tal como se ve en el siguiente esquema:

J2EE es un comité formado por empresas del sector java empresarial que definen
especificaciones (estándares) para que los productos de las diferentes empresas sean
compatibles.

Las paginas web estáticas se colocan dentro del directorio de aplicación (first_servlet\
en nuestro caso) pero nunca dentro del directorio WEB_INF\ ya que este no puede
ser accedido desde el Browser.

Dentro del directorio WEB_INF\classes\ se colocaran las clases java compiladas que
componen la aplicación (incluidos los servlets). En el directorio WEB_INF\lib\ se
pueden incluir librerías (archivos .jar) que pueda necesitar la aplicación.

Vamos a crear un Servlet llamado com.unamjava.servlets.FirstServlet con el siguiente


código fuente:

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 1 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

package com.eduunamjava.servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FirstServlet extends HttpServlet{

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

PrintWriter out = resp.getWriter();


out.println("<html>");
out.println("<body>");
out.println("hoy es " + new Date());
out.println("</body>");
out.println("</html>");
}
}

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 2 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 3 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 4 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 5 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

Errores
Clic derecho

Clases que no
son de Java
Estándar

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 6 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

Doble clic
para
seleccionar

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 7 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

Renombrar
la clase

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 8 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 9 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

Adicionar el siguiente Codigo


}
public static void main (String[] args) {
PrintStream out = System.out;
out.println("<html>");
out.println("<body>");
out.println("hoy es " + new Date());
out.println("</body>");
out.println("</html>");
}

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 10 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 11 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 12 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

En esta ruta:

Crear la siguiente carpeta:

Dentro de esta carpeta crear la carpeta:

Copiar la carpeta:

Dentro de la carpeta clases

Para visualizar donde se quedan los archivos.

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 13 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

Al final el árbol queda:

La clase FirstServl et extiende javax.servlet.http.HttpServlet y sobrescribe el


método doGet(HttpServletRequest req, HttpServletResponse resp) que es
llamado cuando el Servidor Http recibe una petición de tipo GET desde el Browser
(para une explicación de lo que es un método GET y POST ver el tutorial Servidor Web
o Servidor HTTP).

En método doGet recibe dos parámetros, el primero es un objeto de


tipo HttpServletRequest que contiene toda la información acerca de la petición de la

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 14 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

página web y el segundo es un objeto de tipo HttpServletResponse que se utiliza


para rellenar la respuesta que será enviada al Browser.

En el código fuente se puede ver como obtenemos un objeto java.io.PrintWriter del


objeto HttpServletResponse y lo usamos para enviar una página web con la fecha
actual tomada del sistema usando un objeto del tipo java.util.Date.

Para desplegar este Servlet en el servidor debemos copiar el archivo compilado


FirstServlet.class el directorio WEB-INF\Classes\ como se muestra a continuación:

Por último solo nos resta configurar el archivo web.xml para que Tomcat sepa cuando
debe llamar al Servlet FirstServlet. Vamos a configurarlo para que sea llamado cuando
alguien pregunte por http://localhost:8080/first_servlet/what-time-is-it

<web-app>

<servlet>

<servlet-name>timeservlet</servlet-name>

<servlet-class>com.eduunamjava.servlets.FirstServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>timeservlet</servlet-name>

<url-pattern>/what-time-is-it</url-pattern>

</servlet-mapping>

</web-app>

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 15 de 16
Fce08.A.03.12
DIRECCIÓN GENERAL DE CÓMPUTO Y DE
TECNOLOGÍA/S DE INFORMACIÓN Y COMUNICACIÓN
Dirección de Docencia en TIC

<web-app>es el primer elemento en web.xml.Dentro, el lemento<servlet>indica


que se creará un Servlet de la clase com.eduunamjava.servlets.FirstServlet bajo
el nombre internotimeservlet. El elemento<servlet-mapping> asociará el URL
/what_time_is_it al Servlet con nombre interno timeservlet.

y direccionar un Browser a http://localhost:8080/FirstServlet/what_time_is_it

Curso: DESARROLLO DE APLICACIONES WEB CON JAVA EE L.I. Raymundo Lumbreras López 16 de 16
Fce08.A.03.12

También podría gustarte