You are on page 1of 38

DESARROLLO DE APLICACIONES CON JAVA

CAPTULO 1. INTRODUCCIN Y CONFIGURACIN DE LA INSTALACIN


Esta es la primera parte en la cual veremos la instalacin y configuracin de los productos de libre distribucin ms populares para la generacin de contenido dinmico: Apache, Tomcat, Mysql y Java. Pero antes de esto vamos a ver algo ms. BREVE INTRODUCCIN DE JAVA, APACHE, MYSQL Y SOFTWARE LIBRE. Es momento de explorar la historia de de cada uno de estos tres componentes y sobre como trabajan conjuntamente para ayudarnos a crear sitios Web dinmicos y profesionales. Qu es el Open Source? JAVA, Apache y MySQL son todos partes de un grupo de programas denominados Open Source. El movimiento del Open Source es bsicamente la colaboracin de los mejores programadores del mundo. Al permitir el intercambio de informacin contribuyen al desarrollo de un software de mejor calidad que el que tienen los grandes monopolios. Todos ayudan a colaborar para que esto sea as empezando por el programador que realiza software por gusto personal, los usuarios que reportan los posibles errores y las empresas que hacen frente al monopolio aportando el software que ellos ya tienen bien probado. Como trabajan conjuntamente Apache, MySQL y Java La creacin de sitios Web dinmicos permite al usuario tener pginas personalizadas segn la ubicacin geogrfica en la que se encuentren, segn el navegador que utilicen y sobre todo permite al usuario una mejor interaccin con el servidor, ya que el sitio no siempre se ver igual tanto en forma como contenido y esto es posible gracias a la combinacin de: Apache: Es el servidor HTTP, realiza anlisis de archivos y el pasa los resultados al navegador. Proporciona el Servidor Web. Java: Aqu generamos el contenido dinmico, es decir la creacin de pginas HTML, de acuerdo a las caractersticas solicitadas. MySQL: Aqu tenemos la informacin que ser consultada por JAVA. Es el motor de Base de Datos.

1.1 INSTALACIN DE APACHE


Vamos a iniciar nuestro recorrido por este fascinante mundo de la programacin de pginas de contenido dinmico instalando el servidor Web ms utilizado en el mundo: Apache. Vamos a ver entre otras cosas los siguientes temas: 1. Nombramos los requisitos del sistema para ejecutar Apache en Windows. 2. Instalamos Apache en Windows. 3. Iniciamos, paramos y reiniciamos Apache. Antecedentes Aunque Apache se ha estado trasladado a la plataforma Windows durante mucho tiempo, desde Apache 2.0 se puede sacar partido de las llamadas al sistema Windows nativas. Todas las versiones anteriores de Apache utilizaban una capa de abstraccin POSIX que disminua el rendimiento cuando se ejecutaba Apache en Windows. Ahora Apache puede, por fin, competir con otros servidores nativos de Web como el servidor Microsoft IIS y el servidor Netscape Enterprise. En este capitulo, conocer los requisitos del sistema para ejecutar Apache bajo plataformas Windows conocidas, como son Windows XP, Windows 2000, Windows NT y Windows 9x/ME; tambin aprender a instalar Apache y a configurarlo de modo que pueda prepralo y ejecutarlo rpidamente. INSTALACIN Y CONFIGURACIN DE APACHE Requisitos del sistema Apache exige que tenga activado TCP/IP en su sistema Windows. Debera asegurarse de que tiene la ltima versin del TCP/IP (Winsock) para su plataforma Windows. Los usuarios de Windows 2000 con TCP/IP activado pueden instalar Apache sin ningn otro requisito especfico para Windows. Los usuarios de Windows NT 4.0 tienen que tener instalados los paquetes con los ltimos servicios. El servidor Windows 2003 Server es la plataforma ideal para ejecutar un servidor Web de Apache en grado de produccin. Windows XP es el que se utilizar en nuestro caso. Tambin necesita tener al menos la versin 1.10 del Microsoft Installer, o una versin superior para instalar Apache. Windows 2000 y Windows ME tienen integrado el Microsoft Installer. Para el resto de las versiones de Windows, debe consultar los manuales o visitar el sitio Web de Microsoft. Cargar Apache para Windows Apache para Windows se puede cargar desde la distribucin de la fuente o la distribucin binaria. A diferencia de la mayora de las plataformas Unix, Windows no contiene capacidades de desarrollo como un compilador estndar de C, GCC. De modo que las nicas personas que realmente pueden compilar Apache son los desarrolladores de Windows que tienen herramientas de desarrollo como el Microsoft visual Studio. Para la mayor parte de la gente, la distribucin binaria es la nica opcin disponible. Aunque podemos encontrar gcc en Windows, la fuente de Apache no se compila con la versin Windows de gcc. El sitio oficial para bajar los archivos binarios de Apache para Windows es http://httpd.apache.org/download.cgi.

Figura 1.1. Licencia

Las distribuciones binarias se Llaman httpd version-win32-no srcrnumber.msi (por ejemplo, apache_2.2.4-win32-x86no_ssl.msi). Las distribuciones de la fuente se Llaman httpd_version_win32_wint_src.msi. Baje la ltima distribucin binaria estndar estable. En este caso damos clic en Win32 Binary (MSI Installer): apache_2.2.4-win32-x86-no_ssl.msi NOTA: Si es un desarrollador de Windows que pretende bajar y compilar una distribucin-fuente de Apache, entonces puede bajar la versin comprimida de la distribucin fuente en lugar de la versin msi. Necesitar un programa para descomprimirlo como PKUNZIP de PKWARE, WinZip o el propio que traen ya incluidos Windows XP para extraer los archivos de la fuente; que tiene lneas MS-DOS. No baje las distribuciones fuente que terminen en tar.gz o .tar.Z porque son paquetes Unix con lneas para las plataformas Unix. Instalar binarios de Apache Haga doble clic en el archivo apache_version-win32-x86-no_ssl.msi y aparecer la siguiente ventana:

Figura 1.2. Ejecuntando el instalador

En la que damos clic en Ejecutar y comenzar la descarga del Microsoft Installer y la instalacin de Apache.

Figura 1. 3. Inicio de la instalacin

Haga clic en Next para comenzar la instalacin. Le har una serie de preguntas, que se discuten a continuacin. 1. Lea y acepte la licencia que se muestra en la figura. Debe hacer clic en la casilla "I accept the terms in the license agreement" para activar el botn Next. Haga clic en Next pasar a la pantalla siguiente.

Figura 4. Licencia

2. Aparecer una pantalla parecida a la que se muestra en la figura 1.1. Esta pantalla mostrar la ltima informacin (README). Navegue por esta informacin y cuando este preparado, haga clic en Next para continuar.

Figura 5 La nota Read This First

3. La siguiente pantalla es parecida a la de la figura 1.2, y le pide que introduzca el nombre de dominio de la red, el nombre del servidor y la direccin de correo electrnico del administrador. Por defecto, el programa de instalacin determina los nombres basndose en las opciones actuales de Windows. Modifique los valores por defecto por los valores adecuados. No cambie el nombre del servidor o el nombre del dominio sin tener realmente las configuraciones de DNS y de red apropiadas para el host. En otras palabras, no puede elegir de forma arbitraria un nombre de dominio o el nombre del host del servidor. Esta informacin debe ser valida para el host en el que ha instalado Apache. Haga clic en Next para continuar.

Figura 6 . Informacin sobre su servidor

4. Decida si quiere instalar Apache utilizando la instalacin Typical (o completa, con todas las caractersticas del programa instaladas, utilizando mucho espacio en el disco) o Custom (personalizado, en el que se seleccionan los programas y archivos que se instalan), tal y como muestra en la figura 1.4. Le recomiendo que elija la instalacin personalizada porque le permite saber lo que se va a instalar. Siempre tiene la opcin de elegirlo todo en la instalacin personalizada hasta llegar a la completa.

Figura 7. Elegir el mtodo de configuracin

5. Si decide utilizar la instalacin personalizada, vera una pantalla parecida a la que se muestra en la figura 1.5. Se muestran tres opciones. Puede hacer clic en cada una de las opciones para decidir si desea o no instalarla.

Figura 8. Personalizar Apache para su sitio

Por ejemplo, si hace clic en la opcin Apache httpd Server, obtendr un men de opciones como el que se muestra en la figura 1.6.

Figura 1.9. El men de opciones de instalacin

Ha de decidir si instala la caracterstica (httpd Apache server, en este caso) en el disco duro o en un driver de la red. Si el espacio del disco es un problema y no quiere la documentacin online, puede decidir no instalar la documentacin haciendo clic en esa opcin para no seleccionar esa caracterstica. Por defecto, Apache se instala en el directorio C:\Archivos de programa\Apache Software Foundation. Para cambiar esto, haga clic en el botn Change e introduzca un directorio distinto en la siguiente ventana de dialogo, entonces haga clic en OK para volver a esta pantalla. Haga clic en Next para continuar. 6. El programa de instalacin muestra una pantalla que indica que esta preparado para instalar Apache.

Figura 1.10. Iniciamos el proceso de instalacin

Haga clic en Next y espere mientras se instala Apache.

Figura 1.11. Finalizamos el proceso de instalacin

Cuando se completa la instalacin, haga clic en Finish para que termine el programa de instalacin. Por defecto, el programa de instalacin inicia Apache, por lo que debe ser capaz de ver el sitio Web por defecto de su sistema, utilizando un navegador

Figura 1.12. El sitio Web por defecto instalado en su sistema Windows

1.2 INSTALACIN Y CONFIGURACIN DE JAVA 1.6 Vamos a utilizar la tecnologa java jdk para el desarrollo de aplicaciones Web, por eso es muy importante tener bien instalado y configurado java, para ello vamos a realizar los siguientes pasos. 1.- Descargamos java desde el sitio de sun: http://java.sun.com/ , elegimos la ltima versin que en este caso es JDK 6 Update 5. En la seccin de descargas, elegimos Java SE:

Buscamos el archivo (p.e. jdk-6u3-windows-i586-p.exe )

Damos clic en download y aceptamos la licencia:

Y elegimos la ltima versin disponible:

Le indicamos la ruta en donde se almacenara el archivo en nuestro PC e iniciamos la descarga. 2.- Una vez terminada la descarga del archivo iniciamos el proceso de instalacin. a) Damos doble clic al archivo recin descargado

Y nos debe de aparecer la siguiente ventana:

E inmediatamente despus:

En la que aceptamos el contrato dando clic en Accept, una vez hecho lo anterior nos aparece la ventana:

En la que dejamos las herramientas por defecto y solo damos clic en Next. Con esto iniciamos el proceso de instalacin:

En unos instantes nos aparecer una segunda ventana

En la que damos clic en siguiente para indicar que elegimos la opcin por defecto para JRE.

Nos aparece la instalacin del JRE y finalmente

Una vez que haya terminado la instalacin damos clic en Finsh para posteriormente iniciar el proceso de la configuracin de las variables de entorno. CONFIGURACION DE LAS VARIABLES DE ENTORNO Por el momento ya tenemos instalado java en nuestro sistema pero no es posible que podamos compilar un programa desde cualquier ruta o directorio. Ya que si en este momento entramos al modo ms-dos, no podremos ejecutar aun java, para ello damos clic en inicio Z ejecutar y tecleamos cmd, nos aparecer una ventana con fondo negreo y tecleamos: Javac -version

3.- Como vimos que no reconoci a java entonces, en este paso le vamos a indicar a Windows que reconozca a java como nuestro compilador desde cualquier ruta en la que nos encontremos para ello vamos a configurar dos variables de entorno importantes el PATH y el CLASSPATH. Por le momento lo haremos nicamente para PATH, ya despus veremos como agregar el CLASSPATH cada una de las libreras que iremos necesitando. a) Damos clic en Inicio y buscamos Mi PC en la que damos clic con el botn derecho, con esto nos aparecer la siguiente ventana:

En la que seleccionamos la pestaa o ficha Opciones avanzadas y elegimos el botn Variables de Entorno.

En la que buscamos PATH en la parte de Variables de Sistema

Ah damos clic en el botn modificar y agregamos hasta el final de la linea la ruta en donde se instalaron los programas para compilar y ejecutar javac.exe y java.exe los cuales se encuentran en C:\Archivos de programa\Java\jdk1.6.0_05\bin. Debemos de agregar lo siguiente: ;C:\Archivos de programa\Java\jdk1.6.0_05\bin, tal como se ve en la figura siguiente: NOTA: Cuando agregamos el valor de la variable path no debe de llevar espacios despus del ;

NOTA: hay que tener cuidado en no borrar el valor de la variable path, y para ello nos desplazamos con las flechas hacia la derecha y agregar nuestra ruta. Ahora vamos dando clic en Aceptar Aceptar Aceptar en cada una de las ventanas abiertas para establecer los nuevos valores.

4.- Para ver que podemos realizar programas en Java entramos a ventana del sistema. Para lograrlo le damos clic en Inicio>Ejecutar y tecleamos: cmd Nos aparece una ventana al estilo MS DOS, en la cual tecleamos: javac version Y debe de aparecer algo parecido a:

5.- Ahora vamos a realizar un ejemplo sencillo pero que demuestra que java esta funcionando: Con nuestro editor de texto o en nuestro caso con notepad.exe Damos clic en inicio -> ejecutar Y teclemos cmd Con esto nos enva a la ventana de comandos en la que tecleemos Notepad hola.java

Al mensaje que aparece le decimos que si Y tecleamos el siguiente programa en java: class hola { public static void main(String[] args) { System.out.print ("Hola mundo java!!"); } } Ahora para compilar el programa tecleamos> javac hola.java y para ejecutar nuestra aplicacin teclemos java hola sin la extensin. Y si no tuvimos ningn problema veremos una ventana similar a la siguiente:

1.3 INSTALACIN Y CONFIGURACIN DE TOMCAT 6 Como tomcat fue desarrollado en Java, es necesario que se tenga bien instalado y configurado java para que podamos continuar con la instalacin y configuracin de tomcat. Una vez teniendo presente lo anterior procederemos a la instalacin de tomcat. Para ello seguiremos los siguientes pasos: 1.- entramos a la pgina de apache tomcat http://tomcat.apache.org/ y descargamos la ltima versin estable, que en nuestro caso es la versin 6. En la pagina http://tomcat.apache.org/download-60.cgi buscamos el archivo Windows Service Installer, guardamos en el disco duro un archivo llamado apache-tomcat-6.0.14.exe. 2.- Instalacin de tomcat, procederemos a realizar la instalacin con el asistente tpico de Windows. Damos doble clic en el archivo recin descargado

Con ello nos mostrar el asistente para la instalacin de tomcat

En la que damos clic en siguiente para que nos muestre la ventana de la Licencia

Damos clic en el botn I Agree para aceptar la Licencia. Ahora en la ventana que nos aparece seleccionamos la instalacin completa (Full) y activamos las casillas que no estn deshabilitadas o incompletas, tal como se ve en la siguiente ventana:

Damos clic en siguiente y seleccionamos la ruta de la instalacin

Ahora damos clic en siguiente para que nos pida el puerto sobre el que se ejecutara tomcat que por defecto es el 8080 el cual dejamos y tambin nos solicita un usuario y contrasea para el administrador de tomcat.

Damos clic en siguiente y nos pide la ruta o directorio del jre de java, el cual obtiene automticamente y si no le indicamos y en nuestro caso fue C:\Archivos de programa\Java\jre1.6.0_03.

Y por ultimo procedemos a iniciar la instalacin dando clic en install.

NOTA: Si fuese necesario descargar archivos adicionales tomcat lo hara y para ello debemos de estar conectados a Internet.

Al dar clic en finish inicia la instalacin del servicio.

Ahora nos deja un icono en la barra de notificaciones con el que podamos realizar de manera directa con el servidor de apache tomcat, tal como iniciar o detener el servicio.

3.- Para probar que Tomcat este funcionando adecuadamente nos vamos al navegador y en direccin tecleamos lo siguiente: http://localhost:8080 Con lo que deberemos de ver algo similar a lo siguiente:

Si seguimos los pasos anteriores entonces al introducir la URL http://localhost deberamos ver la web de bienvenida de Apache, al introducir http://localhost:8080 la de Tomcat, y con http://localhost/servlets-examples Apache enviar la peticin a Tomcat.

1.4 INSTALACIN Y CONFIGURACIN DE MYSQL En esta parte vamos a: Descargar e instalar MySQL Dar seguridad bsica a MySQL Trabajar con los privilegios del sistema para el usuario

Para instalar MySQL necesitaremos que nuestra computadora este configurada y ejecutndose de manera adecuada los protocolos TCP/IP Descarga e Instalacin de mysql Vamos a ingresar a la pgina de mysql http://dev.mysql.com/downloads/ Como primer paso descargaremos el archivo desde la siguiente ubicacin: http://dev.mysql.com/downloads/mysql/5.0.html Y posteriormente nos muestra todos los enlaces para la descarga:

Figura 1. Licencia

En esta seccin solo veremos la instalacin manual y por eso descargaremos el archivo que tiene el mayor tamao (Without installer unzip in C:\ de 50.0M). Seleccionamos un servidor espejo http://mysql.mirrors.pair.com/Downloads/MySQL-5.0/mysql-noinstall-5.0.51a-win32.zip y descargamos un archivo: mysql-noinstall-5.0.51a-win32.zip Una vez descargado el archivo procedemos a descomprimir el archivo que descargamos en una carpeta temporal que nos da por defecto mysql-noinstall-5.0.51a-win32 al que despus renombramos y copiamos en la unidad c:\ C:\mySQL De tal manera que quede como se ve en la figura siguiente:

Figura 1. Licencia

Establecer las variables de entorno para MySQL C:\mysql\bin

Configuracin del servidor de base de datos mySQL 1.- Copia el archivo c:\mySQL\my-huge.ini hacia la carpeta C:\WINDOWS, renombra por my.ini y modifica las lneas siguientes: Inmediatamente despus de la seccin [mysqld] Agrega las lneas siguientes: # set basedir to your installation path basedir=C:/mysql # set datadir to the location of your data directory datadir=D:/BaseDatos/data basedir indica en donde se encuentran los archivos de mysql y datadir las bases de datos que en este caso estn en otra unidad. Creamos la carpeta BaseDatos en la unidad D de nuestro disco duro (de preferencia en otra particin aunque puede hacerlo en la unidad C:\ si as lo prefiere). Ahora vamos a mover la carpeta data que se encuentra en C:\mySQL\data hacia la unidad D:\BaseDatos\data.

Figura 1. Licencia

Prueba de la instalacin de mysql Ahora para probar la instalacin de mysql vete a inicio->Ejecutar y teclea cmd y en la ventana que aparece teclea lo siguiente cd c:\mySQL\bin Para ejecutar mysql como un servicio: mysqld install Aparecer el mensaje siguiente: Service successfully installed. Y para iniciar el servidor de mysql lo podemos hacer con NET START MySQL Nos muestra entonces el siguiente mensaje: El servicio de MySQL est inicindose. El servicio de MySQL se ha iniciado con xito. Y para parar el servicio: NET STOP MySQL Mostrndonos lo siguiente: El servicio de MySQL est detenindose. El servicio de MySQL fue detenido con xito. Configurando la instalacin de MySQL Despus de hacer la prueba de instalacin nos queda configurar nuestro servidor adecuadamente para eso, si es que no est el servicio lo volvemos a levantar con: NET START MySQL Ahora teclea lo siguiente: mysql -u root Nos solicitar un password y tan solo damos ENTER para que nos enve al prompt de mysql Por defecto en Windows se crea un usuario con todos los privilegios y para cambiar esto teclea lo siguiente desde el prompt de mysql: Ahora vamos a establecer la base de datos mysql como la actual mysql> use mysql; nos aparecer el mensaje: Database changed Despus vamos a ver cuantas cuentas tenemos dadas de alta: mysql> select user, password from user;

Y nos da como resultado lo siguiente:

Como vemos en los resultados se trata de dos cuentas, la de root por lo que cualquiera que se identifique como root en el sistema tendr acceso a todo en MySQL y en caso de que tuvieramos una cuenta vaca la eliminamos con: mysql> DELETE FROM user WHERE Host=localhost AND User=; Con lo que obtenemos el siguiente mensaje: Query OK, 1 row affected (0.03 sec) Nos podemos salir del prompt de mysql tecleando quit o exit. Y para que surtan efecto los cambios de usuario tecleamos lo siguiente: mysqladmin reload si nos marca error entonces probamos con (sin password nicamente tecleando ENTER) mysqladmin: reload failed; error: 'Access denied; you need the RELOAD privilege for this operation' mysqladmin -u root p reload Ahora Cambiar el password del superusuario Para cambiar el password de mysql, debes de tener el servicio de mysql ejecutndose. mysqladmin -u root password tu_nuevo_password Para que mysql registre el cambio de password entonces (ahora si tecleamos el nuevo password): mysqladmin -u root -p reload y digitamos el password anteriormente tecleado Para cambiar ver el estado actual se teclea lo siguiente: mysqladmin -u root -p status dndonos la informacin siguiente: Uptime: 1718 Threads: 1 Questions: 23 Slow queries: 1 Open tables: 6 Queries per second avg: 0.013 Para detener el servicio de mysql se teclea lo siguiente: mysqladmin -u root -p shutdown el parmetro p es para que nos solicite el password Porque de lo contrario nos marcara un error de acceso denegado Cambiando el password de root mediante mysql Si no tenemos levantado el servicio de MySQL entonces lo hacemos con el siguiente comando: net start mysql y ahora estando en la ruta C:\mysql\bin> Vamos a entrar al prompt de mySQL, y tecleamos el password anteriormente asignado a root: mysql -h localhost -u root -p Dentro del intrprete de comandos de MySQL, indique con el comando use mysql que utilizar la base de datos mysql: mysql> use mysql ; Solicite con el mandato show tables que se muestren las tablas de la base de datos mysql: mysql> show tables; Que muestra:

Con el comando select host,user,password from user se mostrar el contenido de la tabla user de la base de datos actual: mysql> select host,user, password from user; Esto har que se vea, entre otras muchas cosas, lo siguiente:

Como se podr observar, el usuario root ya tiene asignada una clave de acceso, pero se puede asignar una nueva clave de acceso del siguiente modo: mysql> update user set Password=PASSWORD('nuevo_password') where user='root'; Query OK, 0 rows affected (0.02 sec) Rows matched: 1 Changed: 0 Warnings: 0 Utilice de nuevo el comando select * from user y vuelva observar el campo que correspondera al de la clave de acceso del usuario root: mysql > select * from user; Deber aparecer ahora un criptograma en el campo que corresponde a la clave de acceso del usuario root. +-------------------------+----------+------------------+--------------+ | Host | User | Password | Select_priv | +-------------------------+----------+------------------+--------------+ | localhost | root |4593274b8e0d68j852| Y | +-------------------------+----------+------------------+--------------+ Se recomienda realizar refresco de los privilegios a fin de que tomen efecto los cambios. mysql > flush privileges; Query OK, 0 rows affected (0.00 sec) Para probar, solo hay que salir del intrprete de MySQL. mysql > quit Intente ingresar de nuevamente al intrprete de comandos de MySQL: mysql Notar que ya no se puede acceder como antes, y regresa un mensaje de error. ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) Ejecute ahora el mismo comando, pero especificando un usuario (-u root) y solicitando se pregunte por una clave de acceso (-p): mysql > mysql -u root -p A continuacin se le pedir ingrese una clave de e acceso, tras lo cual obtendr de nuevo acceso al intrprete de mandatos de MySQL.

Autentificndose con mySQL Para conectarnos al servidor de mysql debemos de seguir la siguiente sintaxis: mysql -h <hostname> -u <username> -p <hostname> Es el nombre del servidor <username> Es el usuario con el que nos conectaremos al servidor En nuestro caso sera asi: mysql -h localhost -u root -p o bien mysql -u root -p Con esto nos pedira el password: Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 5.0.18-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> Con esto ya estamos dentro del mysql y podemos ver si tenemos alguna base de datos tecleando desde el prompt el comando: mysql > SHOW DATABASES; Nos deber de mostrar algo similar a:

En mysql una lnea de comando se termina con el carcter ; Por ejemplo: Si quiero mostrar las bases de datos que tengo en mysql en lneas distintas tecleo mysql > SHOW -> DATABASES;

NOTA: Debemos dejar un espacio despus de teclear show para que funcione, ya que si no nos mandar un mensaje de error. MySql espera que tecleemos mas comandos cambindonos el prompt del servidor de mysql> a -> Si no queremos que mySQL ejecute un comando y para no eliminar toda la lnea lo que debemos de hacer es teclear al final del comando \c asi como se ve aqu: SHOW DATABASES\c Asegurando MySQL, aun cuando pareciera que ya es todo pero todava nos queda eliminar la base de datos test. Para eliminar en mysql la base de datos test tecleamos lo siguiente: mysql> DROP DATABASE test; Query OK, 0 rows affected (0.02 sec) Para terminar la sesin en mysql teclear el comando quit. mysql> quit

Bye Regresndonos as al directorio actual. C:\MySQL\bin> Por el momento es hasta aqu tenemos lo necesario para empezar con MySQL.

CAPTULO 2. CONFIGURANDO LAS TECNOLOGAS WEB DE JAVA


En este captulo vamos a configurar las tecnologas ms representativas de Java: servlets, JSP y JSF.

Servlets
Una vez que ya tenga instalado Apache, Java y Tomcat el siguiente paso es poder desarrollar aplicaciones simples pero funcionales para ello empezaremos con la configuracin del CLASSPATH para que podamos compilar servlets en java y ejecutarlas con tomcat. 1.- Vamos a entrar otra vez a la ventana de las variables de entorno Inicio-> Mi PC botn derecho -> propiedades -> Opciones Avanzadas -> variables de Entorno -> Variables de sistema. Buscamos CLASSPATH y si no lo encontramos lo agregamos. Para ello damos clic en el boton Nueva

Y en la ventana que nos aparece agregamos como Nombre de variable: CLASSPATH y Valor de Variable: C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\lib\el-api.jar; C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\lib\jsp-api.jar; Que permitira compilar en java aplicaciones servlets y jsp servlet-api.jar jsp-api.jar De tal manera que se vea as:

Con ello ya debemos de poder crear nuestros servlets o aplicaciones jsp. 2.- Nuestras aplicaciones por el momento se encontraran en la ruta o directorio siguiente: C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps En la cual creamos la carpeta siguiente: miServlet Ah crearemos una estructura de directorios tal como se ve en la figura siguiente:

Damos clic en Inicio->Ejecutar->cmd y nos cambiamos a la ruta siguiente: C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps\miServlet\WEB-INF\classes, con

cd "C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps\miServlet\WEB-INF\classes" Vamos a crear el cdigo fuentes de java en el bloc de notas para ello tecleamos desde la lnea de comandos: notepad HolaMundo.java Le decimos que si al mensaje que aparece y vamos a teclear el siguiente cdigo: import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class HolaMundo extends HttpServlet { public void init(ServletConfig conf) throws ServletException { super.init(conf); } public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("<html>"); out.println("<body>"); out.println("<h1>Hola Mundo</h1>"); out.println("</body>"); out.println("</html>"); } } Y compilamos nuestro primer servlet con la siguiente instruccin: javac HolaMundo.java Y si no tenemos ningn problema debemos de ver algo similar a lo siguiente:

Con esto nos gener el archivo HolaMundo.class en el directorio classes Por ahora ya tenemos hecho nuestro servlet de ejemplo en java y para ejecutarlo debemos de crear el archivo web.xml en la carpeta miServlet/WEB-INF/ tal como se ve en la figura siguiente:

Y escribimos lo siguiente: <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <description> Ejemplo de un Servlet. </description> <servlet> <servlet-name>HolaMundo</servlet-name> <servlet-class>HolaMundo</servlet-class> </servlet> <servlet-mapping> <servlet-name>HolaMundo</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>

Entramos al navegador y teclemos la siguiente direccin: http://localhost:8080/miServlet

JSP Java Server Pages Para crear un Aplicacin JSP es mas fcil, tan solo es cuestin de crear carpetas y archivos tal como muestra aqu. Primero vamos a crear una carpeta llamada miJSP y ah creamos un archivo llamado HolaMundo.jsp, Damos clic en Inicio->Ejecutar->cmd y nos cambiamos a la ruta siguiente: cd "C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps\miJSP" notepad HolaMundo.jsp Con el contenido siguiente: <% out.println("<h1>Hola Mundo</h1>"); %> Debe quedar as:

Para ejecutarlo nicamente tecleamos la direccion que sigue: http://localhost:8080/miJSP/HolaMundo.jsp Con esto veremos el resultado siguiente:

JSF Java Server Faces


Lamentablemente la configuracin de este framework es ms laboriosa y debemos de seguir los pasos con mucho cuidado para que tengamos el xito esperado. Tambin hay que tomar encuenta que son muchas las implementaciones que existen: Sun (que es la que vamos a ver aqui) Apache (myfaces) A partir de este momento se supone que tenemos funcionando de manera adecuada todo lo anterior a excepcin de JSF. I.- DESCARGA Y CONFIGURACIN DESCARGA DE JSF

Entramos a la pgina siguiente para su descarga: https://javaserverfaces.dev.java.net/ En el enlace de descargas

https://javaserverfaces.dev.java.net/download.html

Pero podemos entrar directamente a: https://javaserverfaces.dev.java.net/files/documents/1866/87641/mojarra-1.2_08-FCS-binary.zip DESCOMPRIMIENDO Y COPIANDO LOS ARCHIVOS: Guardamos el archivo descargado en nuestra computadora y descomprimimos el archivo nuestro disco duro en la unidad C:

c:\mojarra-1.2_08-FCS-binary.zip Debemos tener una mojarra-1.2_08-b06-FCS NOTA: De preferencia sin espacios en la carpeta. COPIANDO LOS ARCHIVOS DE WEBAPPS Debemos de asegurarnos en copiar ms archivos de Tomcat de ejemplo hacia la carpeta de Tomcat de libreras. Los archivos jstl.jar y standar.jar que se encuentran en: C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps\examples\WEB-INF\lib

Los copiamos hacia la carpeta lib de Tomcat (C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\lib).

CONSTRUYENDO LA APLICACIN 1.- Crea un directorio con el nombre de la aplicacin Web, dentro de webapps de Tomcat: Por ejemplo: entrada Dentro de C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps Creamos la carpeta entrada, quedando as: C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps\login Y dentro del creamos los siguientes archivos y carpetas, tal como se muestra en la figura siguiente:

Vamos a copiar las libreras externas para jsf (jsf-api.jar, jsf-impl.jar) desde donde descomprimimos estos: c:\mojarra-1.2_08-FCS-binary

Hacia la carpeta lib de nuestra aplicacin: C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps\entrada\WEB-INF\lib Como se ve en la figura:

Y el contenido de los dems archivos se lista a continuacin: index.html <html> <head> <meta http-equiv="Refresh" content= "0; URL=index.faces"/> <title>Iniciando Aplicacin Web</title> </head> <body> <p>Espere mientras la aplicacin Web Inicia.</p> </body> </html> index.jsp <html> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <f:view> <head> <title>Aplicacion de JavaServer Faces</title> </head> <body> <h:form> <h3>Introduce tu usuario y contrasea.</h3> <table> <tr> <td>Usuario:</td> <td> <h:inputText value="#{usuario.nombre}"/> </td> </tr> <tr> <td>Contrasea:</td> <td> <h:inputSecret value="#{usuario.contrasena}"/> </td> </tr> </table> <p> <h:commandButton value="Entrar" action="entrada"/> </p> </h:form> </body> </f:view> </html> bienvenido.jsp <html> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <f:view> <head> <title>Una Simple Aplicacion con JavaServer Faces</title> </head> <body> <h:form> <h3> Bienvenidos a JavaServer Faces, <h:outputText value="#{usuario.nombre}"/>!

</h3> </h:form> </body> </f:view> </html> faces-config.xml <?xml version="1.0"?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"> <faces-config> <navigation-rule> <from-view-id>/index.jsp</from-view-id> <navigation-case> <from-outcome>entrada</from-outcome> <to-view-id>/bienvenido.jsp</to-view-id> </navigation-case> </navigation-rule> <managed-bean> <managed-bean-name>usuario</managed-bean-name> <managed-bean-class> org.edilberto.beanUsuario </managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> </faces-config> web.xml <?xml version="1.0"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.faces</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app> beanUsuario.java package org.edilberto; public class beanUsuario { private String nombre; private String contrasena; // PROPERTY: nombre public String getNombre() { return nombre; } public void setNombre(String nuevoValor) { nombre = nuevoValor; } // PROPERTY: contrasena public String getContrasena() { return contrasena; } public void setContrasena(String nuevoValor) { contrasena = nuevoValor; } } Este archivo se ubica en C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps\entrada\WEBINF\classes\com\org\edilberto Para posteriormente compilarlo debemos de abrir una ventana de comandos en Inicio->Ejecutar y tecleamos: cmd Obviamente deberemos de estar ubicados en :

C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps\entrada\WEB-INF\classes Nos cambiamos a esa carpeta: Con el comando: cd C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps\entrada\WEB-INF\classes Y despus lo compilamos con: javac org/edilberto/beanUsuario.java Tal como se ve en la siguiente figura:

Esto nos generar un archivo .class llamado beanUsuario.class REINICIANDO TOMCAT Una vez que ya hayamos terminado nuestra aplicacin vamos a hacer que Tomcat los reconozca:

En la barra de notificaciones de Windows ( la parte inferior izquierda ) aparece tomcat en ejecucin

Damos doble clic y detenemos el servicio

Y volvemos a dar doble clic en

para iniciar tomcat

EJECUTANDO LA APLICACION

Si hasta este momento no hemos tenido ningn problema es hora de probar que nuestra aplicacin funciona adecuadamente, y para tal fin abrimos nuestro navegador y tecleamos la direccin: http://localhost:8080/entrada

Y vemos como automticamente cambia a: http://localhost:8080/login/index.faces

En la que tecleamos cualquier usuario y contrasea:

Y le damos clic en entrar, con esto nos lleva a la siguiente ventana:

CAPTULO 3. COMUNICACIN ENTRE JAVA Y MYSQL


Preparativos iniciales Ahora vamos a ver como podemos hacer que Java se entere de la existencia de mysql o mejor dicho conectar a java con mysql. Para ello primero vamos a crear una base de datos de prueba as como un usuario que nos va a poder realizar las operaciones necesarias sobre dicha base de datos. Creacin de una Base de Datos de Prueba Primero vamos a crear la base de datos de prueba y para ello nos ubicamos en la ruta de mysql y tecleamos lo siguiente: C:\MySQL\bin> mysqladmin -u root -p create miBaseDatos Enter password: ****** Con esto creamos una base de datos llamada miBaseDatos, lo que se hizo con esto fue generar una carpeta con un archivo como se ve en la figura:

Figura 1. Licencia

Creacin de una cuenta para acceder desde Java a Mysql Si no estamos en el prompt de mySQL entonces accedamos a l mediante: mysql > mysql -u root -p El usuario que vamos a crear puede acceder a la Base de Datos se llama webmaster para ello teclemos en el prompt GRANT usage ON miBaseDatos.* TO webmaster@192.168.1.200 IDENTIFIED BY 'pmaster'; mysql> GRANT usage -> ON miBaseDatos.* -> TO webmaster@192.168.1.200 -> IDENTIFIED BY pmaster; Query OK, 0 rows affected (0.00 sec) La cuenta recin creada nicamente tiene derechos de lectura sobre la base de datos. Podemos darle los dems derechos a esta cuenta como son crear tablas, actualizar, insertar y borrar registros con el siguiente comando: GRANT create,select, insert, delete, update ON miBaseDatos.* TO webmaster@192.168.1.200; mysql> GRANT create,select, insert, delete, update -> ON miBaseDatos.* -> TO webmaster@192.168.1.200; Query OK, 0 rows affected (0.03 sec) Ahora bien par ver que realmente esos son los privilegios del usuario webmaster: show grants for webmaster@192.168.1.200; Con el que nos aparecer el siguiente mensaje: +----------------------------------------------------------------------------+ | Grants for webmaster@192.168.1.200 | +----------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'webmaster'@'192.168.1.200' | | GRANT SELECT, INSERT, UPDATE, DELETE ON ` miBaseDatos `.* TO 'webmaster'@'192.168.1.200' | +----------------------------------------------------------------------------+ 2 rows in set (0.02 sec) Nos salimos del prompt con quit; Creando una tabla para acceder desde Java Ahora que ya tenemos la base de datos creada y el usuario es necesario introducir datos en el y para eso debes de copiar y pegar el siguiente texto en la ruta D:\BaseDatos\data\mibasedatos y nombrar el archivo como miBaseDatos.dump. CREATE TABLE Empleados ( idEmpleado tinyint(4) NOT NULL AUTO_INCREMENT,

Nombre varchar(50), ApellidoPaterno varchar(45), ApellidoMaterno varchar(45), Direccion varchar(255), Puesto varchar(50), PRIMARY KEY (idEmpleado), UNIQUE id (idEmpleado)); INSERT INTO Empleados VALUES (1,'Juan','Perez','Gonzalez','Calle Jacarandas Mza. 4, Lte 45, Col. Bondojito','Obrero Calificado'); INSERT INTO Empleados VALUES (2,'Pedro','Santiago','Mendez','Edif. 45, Depto 121, Col Chapultepec','Supervisor'); INSERT INTO Empleados VALUES (3,'Francisco','Martinez','Munguia','Avenida Sn Juan de Aragon 324, Col Madero, Int. 234','Cajero'); Ahora vamos a darle la orden desde la lnea de comando del dos, en cuanto nos solicite el password tecleamos el que ya habamos definido anteriormente (pmaster): C:\MySQL\bin>mysql -u webmaster -p miBaseDatos < D:\BaseDatos\data\mibasedatos\miBaseDatos.dump Enter password: *********** Con esto ya generamos la tabla Empleados en la base de datos miBaseDatos, utilizando las instrucciones sql tomadas del archivo miBaseDatos.dump. Ahora solo para asegurarnos de que todo est funcionando correctamente vamos a entrar a mysql con webmaster y vamos a que tenemos datos en la tabla empleados: C:\MySQL\bin>mysql -u webmaster -p mysql> show databases;

Nota: No podemos ver la base de datos mysql porque no somos root Ahora vemos que existan datos en la tabla empleados: Use mibasedatos; Y select * from empleados;

+------------+-----------+-----------------+-----------------+----------------------------------------------------+------------------|idEmpleado| Nombre | ApellidoPaterno | ApellidoMaterno | Direccion| Puesto | +--------- --+-----------+-----------------+-----------------+----------------------------------------------------+-----------------+ | 1 | Juan | Perez | Gonzalez | Calle Jacarandas Mza. 4, Lte 45, Col. Bondojito | Obrero Calificado | | 2 | Pedro | Santiago | Mendez | Edif. 45, Depto 121, Col Chapultepec | Supervisor | | 3 | Francisco | Martinez | Munguia | Avenida Sn Juan de Aragon 324, Col Madero, Int. 234 | Cajero | +------------+-----------+-----------------+-----------------+--------------------------------------------------+-------------------+ 3 rows in set (0.00 sec) Ah ya se encuentra la informacin que queremos. Descarga el conector de java para MySQL 1.- Entramos a la pagina de MySQL donde descargamos el conector para Windows http://dev.mysql.com/downloads/connector/j/3.0.html

2.- Una vez descargado lo descomprimimos en la ubicacin actual y buscamos el archivo: mysql-connector-java-3.0.17-gabin.jar

3.- Indicamos a Java de la existencia del conector. El punto importante aqu es que Java runtime environment encuentre el conector cuando se ejecuten los programas. Para hacer esto existen varias posibilidades: La solucin ms simple es copiar el archivo mysql-connector-java-n.jar en el directorio de Instalacin de Java jre\lib\ext, ya que de manera automtica aqu es donde se verifica de la existencia de los archivos durante la ejecucin de los programas de java. Entonces lo movemos a la siguiente ubicacin: C:\Archivos de programa\Java\jre1.6.0_07\lib\ext

Otra alternativa es agregar la variable CLASSPATH. Esta variable contiene todos los directorios de las clases que deben ser tomadas en cuenta por los programas de Java, cuando estos se ejecutan. Debemos de teclear punto y coma (;) el nombre del directorio y el nombre del archivo .jar. CLASSPATH, en nuestro Caso seria: .;c:\ubicacionconector\ mysql-connector-java-n.jar

ABRIENDO LOS PUERTOS PARA LA CONEXION REMOTA Estos pasos se usaran si es que en el servidor de base de datos van a estar conectndose usuarios remotos, programas remotos o un Web Server remoto. En caso de que el servidor Web por ejemplo o los programas locales estn en el mismo servidor de base de datos entonces en lugar de usar la IP nicamente usamos localhost. Lo primero que debo de hacer es ubicarme en el servidor de base de datos de MySQL y ver cual es la IP, de preferencia que esta siempre sea esttica para no estar cambiando en el programa cada vez que se cambie la ip. Entramos a la lnea de comandos y tecleamos ipconfig Nos da que es la ip 192.168.1.200 Ahora MySQL funciona en el puerto que esta configurado en el archivo de inicio c:\windows\My.ini que se en cuentra en la lnea Port = 3306 El cual deberemos de abrir o permitir el acceso para el cortafuegos de Windows Para eso hago lo siguiente: Inicio -> Panel de Control y Centro de Seguridad

2.- Le damos un clic en Firewall de Windows

3.- Damos clic en excepciones y damos clic en Agregar puerto

Y teclear como nombre MySQL y puerto 3306

4.- Damos clic en las ventanas en Aceptar para confirmar la apertura de este puerto 5.- Ahora vamos a hacer un ping al servidor de base de datos (para saber la ip del servidor ipconfig /all) ping 192.168.1.200 Vemos que hay respuesta Respuesta desde 192.168.1.200: bytes=32 tiempo<1m TTL=128 6.- Hacer un Telnet al puerto 3306 telnet 192.168.1.200 3306

Vemos que se conecta y despus se vuelve a perder la conexin. Ya estamos listos PROBAR QUE ESTE FUNCIONANDO JAVA CON MySQL 1.- Entramos al la ventana de ms-dos, inicio->ejecutar-> cmd y creamos con el bloc de notas el archivo siguiente javamysql.java: import java.sql.*; public class javamysql { public static void main(String args[]) { try { //Cargar clase de controlador de base de datos Class.forName("com.mysql.jdbc.Driver"); //Crear el objeto de conexion a la base de datos Connection conexion = DriverManager.getConnection("jdbc:mysql://192.168.1.200/miBaseDatos","webmaster", "pmaster"); //Crear objeto Statement para realizar queries a la base de datos Statement instruccion = conexion.createStatement(); //Un objeto ResultSet, almacena los datos de resultados de una consulta ResultSet tabla = instruccion.executeQuery("SELECT * FROM empleados"); System.out.println("Codigo\tNombre"); while(tabla.next()) System.out.println(tabla.getInt(1)+"\t"+tabla.getString(2)+"\t"+tabla.getString(3)+"\t"+tabla.getString(4) +"\t"+tabla.getString(5)+"\t"+tabla.getString(5)); } catch(ClassNotFoundException e){ System.out.println(e); } catch(SQLException e){ System.out.println(e); } catch(Exception e){ System.out.println(e); } } } 2.- compilamos con

javac javamysql.java y ejecutamos con java javamysql Y debe de verse algo similar a lo siguiente:

Y eso es todo por el momento!!! Comentarios dudas y sugerencias con mark75mx@yahoo.com.mx