Proyecto DPOO: ”Servlets y acceso a Bases De Datos”

**”Sistema de Contacto con ExAlumnos”

gusval [arroba] elo.utfsm.cl

 

 

                  El modelo inicial para desarrollar el sistema de contactos con exalumnos  constaba del uso de Servlets y JSP, sin embargo este modelo fue descartado y actualmente se esta desarrollando mediante el uso de Servlets, JSP y EJB, esta actualmente en desarrollo y para las finalidades de este ramo he optado por trabajar con servlets, mostrando su funcionamiento y la forma de acceder a una base de datos, en este caso Mysql.

 

                 La aplicación consiste en 3 códigos simples que acceden a una base de datos cumpliendo las tareas de insertar registros, borrar registros y mostrar las tablas. El Contenedor Web es Tomcat en modo StandAlone (abajo se explica la instalación y configuración básica).

 

                 La dirección donde  se muestra el funcionamiento es http://miIp:8080/agendita

 

                

 

                 Presentación

 

 

                 INSTALANDO EL TOMCAT (forma estandar)

 

                 Lo primero que tenemos que hacer es bajar el Tomcat de la página oficial de Apache ( http://jakarta.apache.org/site/binindex.cgi ).

 

                 Una vez descargado, copiamos el archivo al directorio donde vayamos a instalar Tomcat. El direcotorio donde se descomprima a partir de ahora lo llamaré directorio $CATALINA_HOME, por seguir la documentación oficial de Tomcat ( CATALINA_HOME = directorio de instalación de Jakarta-Tomcat)

 *(en debian basta con agregar el (o los) repositorios

 deb http://apt.leapster.org/tomcat ./

 deb-src http://apt.leapster.org/tomcat ./

y instalar con apt)

 

                Ahora se debe setear la variable JAVA_HOME al sistema, apuntando al directorio donde esta instalado  java (Para que el Tomcat sepa donde buscar el java). Después ir al directorio $ CATALINA_HOME/bin. En este directorio están los scripts para arrancar (startup.sh) y parar (shutdown.sh) el Tomcat. También estan los ejecutables para Windows (los .exe y los .bat)

                  Arranque: ejecutar el script startup.sh y accedr a http://localhost:8080/. Si todo ha ido bien, deberías ver la página principal de Tomcat (puede que el Tomcat tarde un poco en arrancar. Si inicialmente no se conecta al puerto 8080, darle a recargar en vuestro navegador y probad de nuevo)

 

Ejemplo

 

CREANDO UN SERVLET

Ahora vamos a crear un Servlet de ejemplo. Primero tenemos que añadir al CLASSPATH de java las bibliotecas de Servlets que nos proporciona el Tomcat. Para eso añadimos el directorio $CATALINA_HOME/common/lib/servlet-api.jar a la variable de entorno anteriormente mencionada (ojo, no escribáis $CATALINA_HOME, sustituirlo por el directorio donde tengáis instalado el Tomcat). Una vez preparado todo, pasamos a escribir nuestro ejemplo, que será el típico HolaMundo. El código concreto es:

 

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

 

public class HolaMundo extends HttpServlet

{

                 public void doGet(HttpServletRequest request, HttpServletResponse response)

                 throws ServletException, IOException

                 {

                   response.setContentType("text/html");

                   PrintWriter out = response.getWriter();

                   out.println("");

                   out.println("");

                   out.println("Prueba");

                   out.println("");

                   out.println(" ¡Hola mundo! ");

                   out.println("");

                 }

}

 

 

Bueno, grabar el código en un fichero HolaMundo.java y compilarlo. Ahora se debe montar la estructura de directorios propia de un Servler, acorde a la especificación oficial de SUN. Dicha estructura es la siguiente:

 

    * Nombre_de_la_aplicación (el que uno quiera, en este caso Prueba)

          o META-INF (no se usa en este ejemplo)

          o WEB-INF (Aquí incluimos el archivo web.xml)

                + classes (para guardar los archivos compilados)

                + src (opcional, para guardar las fuentes)

                + lib (contendrá los .jar externos.)

 

Luego se copiaa el archivo HolaMundo.class al directorio classes También podemos copiar HolaMundo.java a src, pero es opcional. Posteriormente tenemos que crear el archivo web.xml, que dijimos antes. Este archivo es el que describe a nuestra aplicación. En nuestro caso debe ser el siguiente:

 

<?xml version="1.0" encoding="ISO-8859-15"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"

"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

 

<web-app>

                 <servlet>

                   <servlet-name>prueba</servlet-name>

                   <servlet-class>HolaMundo</servlet-class>

                 </servlet>

 

                 <servlet-mapping>

                   <servlet-name>prueba</servlet-name>

                   <url-pattern>hola</url-pattern>

                 </servlet-mapping>

</web-app>

 

En servlet-name indicaremos el nombre de nuestra aplicación y lo haremos coincidir con el directorio donde la tenemos guardada (aquel cuyo contenido estamos creando ahora). En servet-class ponemos la clase principal de nuestra aplicación y en url-pattern la dirección desde la cual accederemos al servlet. Para más información consultar la documentación oficial.

 

Bueno, copiamos nuestra aplicación al directorio $CATALINA_HOME/webapps/ y reiniciamos el Tomcat (usando los scripts shutdown.sh y startup.sh comentados antes). Para comprobar que todo va bien accedemos a http://localhost/prueba/hola (Si habéis usado otro url-pattern u otro servlet-name la dirección general es http://localhost/$servlet-name/$url-pattern). Si todo ha ido bien, deberíamos ver el !Hola Mundo¡

 

EL MANAGER DE TOMCAT

 

El manager es una aplicación para administración del motor Tomcat que usa una interfaz vía web.  En principio y por razones de seguridad no podemos acceder al manager hasta que creemos un usuario de Tomcat con derecho de administrador. Para crearlo debemos modificar el archivo de configuración de usuarios de Tomcat, que se encuentra en $CATALINA_HOME/conf/tomcat-users.xml. A dicho archivo le tendremos que añadir las siguientes lineas:

 

<role rolename="manager"/>

<user username="root" password="xxxxxxx" roles="manager"/>

si se desean mas privilegios para un usuario, se separan por “coma”, por ejemplo  roles=”manager,otrorol,etc”

 

Una vez añadido el usuario, se reinicia tomcat  y accedemos, desde nuestro navegador a la dirección http://localhost:8080/manager/html , introducimos los datos (username/password) del usuario recién creado y aparecerá ante nosotros la interfaz del manager. Dicha interfaz consta de 5 partes:

 

          o Message: Aquí se nos mostrará el resultado de las ordenes que le vayamos dando al manager. Pueden ser OK o FAILED.

          o Manager: Aquí tenemos 4 opciones. La primera recarga la lista de aplicaciones instaladas actualmente (dicha lista está justo debajo, ahora la veremos con más detenimiento), las dos siguientes nos permiten el acceso a la documentación del manager y la última nos permiten ver el estado del motor de Tomcat.

          o Applications: Aquí tenemos la lista de aplicaciones web que está ejecutando Tomcat. Podemos parar (stop), iniciar (start), recargar (reload) o borrar (undeploy) la aplicación.

          o Deploy: Desde aquí podemos subir aplicaciones directamente al tomcat

          o Server information: Información del servidor.