jsf tutorial

38
DESARROLLO DE APLICACIONES CON JAVA

Upload: jaiverlh

Post on 05-Jul-2015

5.526 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Jsf tutorial

DESARROLLO DE APLICACIONES

CON JAVA

Page 2: Jsf tutorial

CAPÍTULO 1. INTRODUCCIÓN Y CONFIGURACIÓN DE LA INSTALACIÓN

Esta es la primera parte en la cual veremos la instalación y configuración de los productos de libre distribución más populares para la generación de contenido dinámico: Apache, Tomcat, Mysql y Java. Pero antes de esto vamos a ver algo más. BREVE INTRODUCCIÓN 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 dinámicos 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 básicamente la colaboración de los mejores programadores del mundo. Al permitir el intercambio de información 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 creación de sitios Web dinámicos permite al usuario tener páginas personalizadas según la ubicación geográfica en la que se encuentren, según el navegador que utilicen y sobre todo permite al usuario una mejor interacción con el servidor, ya que el sitio no siempre se verá igual tanto en forma como contenido y esto es posible gracias a la combinación de: Apache: Es el servidor HTTP, realiza análisis de archivos y el pasa los resultados al navegador. Proporciona el Servidor Web. Java: Aquí generamos el contenido dinámico, es decir la creación de páginas HTML, de acuerdo a las características solicitadas. MySQL: Aquí tenemos la información que será consultada por JAVA. Es el motor de Base de Datos. 1.1 INSTALACIÓN DE APACHE Vamos a iniciar nuestro recorrido por este fascinante mundo de la programación de páginas de contenido dinámico instalando el servidor Web más 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 abstracción POSIX que disminuía 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; también aprenderá a instalar Apache y a configurarlo de modo que pueda prepáralo y ejecutarlo rápidamente. INSTALACIÓN Y CONFIGURACIÓN DE APACHE Requisitos del sistema Apache exige que tenga activado TCP/IP en su sistema Windows. Debería asegurarse de que tiene la última versión del TCP/IP (Winsock) para su plataforma Windows. Los usuarios de Windows 2000 con TCP/IP activado pueden instalar Apache sin ningún otro requisito específico 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 producción. Windows XP es el que se utilizará en nuestro caso. También necesita tener al menos la versión 1.10 del Microsoft Installer, o una versión 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 distribución de la fuente o la distribución binaria. A diferencia de la mayoría de las plataformas Unix, Windows no contiene capacidades de desarrollo como un compilador estándar 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 distribución binaria es la única opción disponible. Aunque podemos encontrar gcc en Windows, la fuente de Apache no se compila con la versión Windows de gcc. El sitio oficial para bajar los archivos binarios de Apache para Windows es http://httpd.apache.org/download.cgi.

Page 3: Jsf tutorial

Figura 1.1. Licencia

Las distribuciones binarias se Llaman httpd version-win32-no srcrnumber.msi (por ejemplo, apache_2.2.4-win32-x86-no_ssl.msi). Las distribuciones de la fuente se Llaman httpd_version_win32_wint_src.msi. Baje la última distribución binaria estándar 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 distribución-fuente de Apache, entonces puede bajar la versión comprimida de la distribución fuente en lugar de la versión 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 líneas MS-DOS. No baje las distribuciones fuente que terminen en tar.gz o .tar.Z porque son paquetes Unix con líneas 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 instalación de Apache.

Page 4: Jsf tutorial

Figura 1.

3. Inicio de la instalación

Haga clic en Next para comenzar la instalación. Le hará una serie de preguntas, que se discuten a continuación.

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 botón 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 información (README). Navegue por esta información 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 dirección de correo electrónico del administrador. Por defecto, el programa de instalación determina los nombres basándose 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 información debe ser valida para el host en el que ha instalado Apache. Haga clic en Next para continuar.

Page 5: Jsf tutorial

Figura 6 . Información sobre su servidor

4. Decida si quiere instalar Apache utilizando la instalación Typical (o completa, con todas las características 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 instalación personalizada porque le permite saber lo que se va a instalar. Siempre tiene la opción de elegirlo todo en la instalación personalizada hasta llegar a la completa.

Figura 7. Elegir el método de configuración

5. Si decide utilizar la instalación 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 opción Apache httpd Server, obtendrá un menú de opciones como el que se muestra en la figura 1.6.

Page 6: Jsf tutorial

Figura 1.9. El menú de opciones de instalación

Ha de decidir si instala la característica (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 documentación online, puede decidir no instalar la documentación haciendo clic en esa opción para no seleccionar esa característica. Por defecto, Apache se instala en el directorio C:\Archivos de programa\Apache Software Foundation. Para cambiar esto, haga clic en el botón 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 instalación muestra una pantalla que indica que esta preparado para instalar Apache.

Figura 1.10. Iniciamos el proceso de instalación

Haga clic en Next y espere mientras se instala Apache.

Figura 1.11. Finalizamos el proceso de instalación

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

Page 7: Jsf tutorial

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

1.2 INSTALACIÓN Y CONFIGURACIÓN DE JAVA 1.6 Vamos a utilizar la tecnología 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 versión que en este caso es JDK 6 Update 5. En la sección 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 versión 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 instalación. a) Damos doble clic al archivo recién descargado

Page 8: Jsf tutorial

Y nos debe de aparecer la siguiente ventana:

E inmediatamente después:

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 instalación:

Page 9: Jsf tutorial

En unos instantes nos aparecerá una segunda ventana

En la que damos clic en siguiente para indicar que elegimos la opción por defecto para JRE.

Nos aparece la instalación del JRE y finalmente

Page 10: Jsf tutorial

Una vez que haya terminado la instalación damos clic en Finísh para posteriormente iniciar el proceso de la configuración 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 después veremos como agregar el CLASSPATH cada una de las librerías que iremos necesitando. a) Damos clic en Inicio y buscamos Mi PC en la que damos clic con el botón derecho, con esto nos aparecerá la siguiente ventana:

En la que seleccionamos la pestaña o ficha Opciones avanzadas y elegimos el botón Variables de Entorno.

Page 11: Jsf tutorial

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

Ahí damos clic en el botón 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 después 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.

Page 12: Jsf tutorial

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 envía 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 extensión. Y si no tuvimos ningún problema veremos una ventana similar a la siguiente:

Page 13: Jsf tutorial

1.3 INSTALACIÓN Y CONFIGURACIÓN 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 instalación y configuración de tomcat. Una vez teniendo presente lo anterior procederemos a la instalación de tomcat. Para ello seguiremos los siguientes pasos: 1.- entramos a la página de apache tomcat http://tomcat.apache.org/ y descargamos la última versión estable, que en nuestro caso es la versión 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.- Instalación de tomcat, procederemos a realizar la instalación con el asistente típico de Windows. Damos doble clic en el archivo recién descargado

Con ello nos mostrará el asistente para la instalación de tomcat

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

Page 14: Jsf tutorial

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

Damos clic en siguiente y seleccionamos la ruta de la instalación

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 también nos solicita un usuario y contraseña para el administrador de tomcat.

Page 15: Jsf tutorial

Damos clic en siguiente y nos pide la ruta o directorio del jre de java, el cual obtiene automáticamente 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 instalación dando clic en install.

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

Page 16: Jsf tutorial

Al dar clic en finish inicia la instalación 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 dirección 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 deberíamos ver la web de bienvenida de Apache, al introducir http://localhost:8080 la de Tomcat, y con http://localhost/servlets-examples Apache enviará la petición a Tomcat.

Page 17: Jsf tutorial

1.4 INSTALACIÓN Y CONFIGURACIÓN DE MYSQL

En esta parte vamos a:

• Descargar e instalar MySQL • Dar seguridad básica a MySQL • Trabajar con los privilegios del sistema para el usuario

Para instalar MySQL necesitaremos que nuestra computadora este configurada y ejecutándose de manera adecuada los protocolos TCP/IP Descarga e Instalación de mysql Vamos a ingresar a la página de mysql http://dev.mysql.com/downloads/ Como primer paso descargaremos el archivo desde la siguiente ubicación: http://dev.mysql.com/downloads/mysql/5.0.html Y posteriormente nos muestra todos los enlaces para la descarga:

Figura 1. Licencia

En esta sección solo veremos la instalación manual y por eso descargaremos el archivo que tiene el mayor tamaño (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 después renombramos y copiamos en la unidad c:\ C:\mySQL De tal manera que quede como se ve en la figura siguiente:

Page 18: Jsf tutorial

Figura 1. Licencia

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

Configuración 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 líneas siguientes: Inmediatamente después de la sección [mysqld] Agrega las líneas 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 están en otra unidad. Creamos la carpeta BaseDatos en la unidad D de nuestro disco duro (de preferencia en otra partición 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.

Page 19: Jsf tutorial

Figura 1. Licencia

Prueba de la instalación de mysql Ahora para probar la instalación 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á iniciándose. El servicio de MySQL se ha iniciado con éxito. Y para parar el servicio: NET STOP MySQL Mostrándonos lo siguiente: El servicio de MySQL está deteniéndose. El servicio de MySQL fue detenido con éxito. Configurando la instalación de MySQL Después de hacer la prueba de instalación 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 envíe 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 Después vamos a ver cuantas cuentas tenemos dadas de alta: mysql> select user, password from user;

Page 20: Jsf tutorial

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 vacía 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 ejecutándose. 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 dándonos la información 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 parámetro –p es para que nos solicite el password Porque de lo contrario nos marcaría 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 intérprete 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:

Page 21: Jsf tutorial

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 correspondería 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 intérprete de MySQL. mysql > quit Intente ingresar de nuevamente al intérprete 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 continuación se le pedirá ingrese una clave de e acceso, tras lo cual obtendrá de nuevo acceso al intérprete de mandatos de MySQL.

Page 22: Jsf tutorial

Autentificándose 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 sería asi: mysql -h localhost -u root -p o bien mysql -u root -p Con esto nos pediría 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 línea de comando se termina con el carácter ; Por ejemplo: Si quiero mostrar las bases de datos que tengo en mysql en líneas distintas tecleo mysql > SHOW -> DATABASES;

NOTA: Debemos dejar un espacio después de teclear show para que funcione, ya que si no nos mandará un mensaje de error. MySql espera que tecleemos mas comandos cambiándonos el prompt del servidor de mysql> a -> Si no queremos que mySQL ejecute un comando y para no eliminar toda la línea 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 todavía 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 sesión en mysql teclear el comando quit. mysql> quit

Page 23: Jsf tutorial

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

Page 24: Jsf tutorial

CAPÍTULO 2. CONFIGURANDO LAS TECNOLOGÍAS WEB DE JAVA En este capítulo vamos a configurar las tecnologías más 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 configuración 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 botón 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

Page 25: Jsf tutorial

cd "C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps\miServlet\WEB-INF\classes" Vamos a crear el código fuentes de java en el bloc de notas para ello tecleamos desde la línea de comandos: notepad HolaMundo.java Le decimos que si al mensaje que aparece y vamos a teclear el siguiente código: 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 instrucción: javac HolaMundo.java Y si no tenemos ningún 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>

Page 26: Jsf tutorial

Entramos al navegador y teclemos la siguiente dirección: http://localhost:8080/miServlet

JSP – Java Server Pages Para crear un Aplicación JSP es mas fácil, tan solo es cuestión 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 configuración de este framework es más laboriosa y debemos de seguir los pasos con mucho cuidado para que tengamos el éxito esperado. También 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 excepción de JSF. I.- DESCARGA Y CONFIGURACIÓN DESCARGA DE JSF

Page 27: Jsf tutorial

Entramos a la página 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 más archivos de Tomcat de ejemplo hacia la carpeta de Tomcat de librerías. 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

Page 28: Jsf tutorial

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

CONSTRUYENDO LA APLICACIÓN 1.- Crea un directorio con el nombre de la aplicación 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 librerías externas para jsf (jsf-api.jar, jsf-impl.jar) desde donde descomprimimos estos: c:\mojarra-1.2_08-FCS-binary

Page 29: Jsf tutorial

Hacia la carpeta lib de nuestra aplicación: 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 demás archivos se lista a continuación: index.html <html> <head> <meta http-equiv="Refresh" content= "0; URL=index.faces"/> <title>Iniciando Aplicación Web</title> </head> <body> <p>Espere mientras la aplicación 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 contraseña.</h3> <table> <tr> <td>Usuario:</td> <td> <h:inputText value="#{usuario.nombre}"/> </td> </tr> <tr> <td>Contraseña:</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}"/>!

Page 30: Jsf tutorial

</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\WEB-INF\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 :

Page 31: Jsf tutorial

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 después 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 aplicación vamos a hacer que Tomcat los reconozca:

En la barra de notificaciones de Windows ( la parte inferior izquierda ) aparece tomcat en ejecución

Damos doble clic y detenemos el servicio

Y volvemos a dar doble clic en para iniciar tomcat

EJECUTANDO LA APLICACION

Page 32: Jsf tutorial

Si hasta este momento no hemos tenido ningún problema es hora de probar que nuestra aplicación funciona adecuadamente, y para tal fin abrimos nuestro navegador y tecleamos la dirección: http://localhost:8080/entrada

Y vemos como automáticamente cambia a: http://localhost:8080/login/index.faces

En la que tecleamos cualquier usuario y contraseña:

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

Page 33: Jsf tutorial

CAPÍTULO 3. COMUNICACIÓN 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. Creación 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

Creación 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 [email protected] IDENTIFIED BY 'pmaster'; mysql> GRANT usage -> ON miBaseDatos.* -> TO [email protected] -> IDENTIFIED BY ‘pmaster’; Query OK, 0 rows affected (0.00 sec) La cuenta recién creada únicamente tiene derechos de lectura sobre la base de datos. Podemos darle los demás 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 [email protected]; mysql> GRANT create,select, insert, delete, update -> ON miBaseDatos.* -> TO [email protected]; Query OK, 0 rows affected (0.03 sec) Ahora bien par ver que realmente esos son los privilegios del usuario webmaster: show grants for [email protected]; Con el que nos aparecerá el siguiente mensaje: +----------------------------------------------------------------------------+ | Grants for [email protected] | +----------------------------------------------------------------------------+ | 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,

Page 34: Jsf tutorial

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 línea de comando del dos, en cuanto nos solicite el password tecleamos el que ya habíamos 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 información 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

Page 35: Jsf tutorial

2.- Una vez descargado lo descomprimimos en la ubicación actual y buscamos el archivo: mysql-connector-java-3.0.17-ga-bin.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 solución más simple es copiar el archivo mysql-connector-java-n.jar en el directorio de Instalación de Java jre\lib\ext, ya que de manera automática aquí es donde se verifica de la existencia de los archivos durante la ejecución de los programas de java. Entonces lo movemos a la siguiente ubicación: 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

Page 36: Jsf tutorial

ABRIENDO LOS PUERTOS PARA LA CONEXION REMOTA Estos pasos se usaran si es que en el servidor de base de datos van a estar conectándose usuarios remotos, programas remotos o un Web Server remoto. En caso de que el servidor Web por ejemplo o los programas locales estén 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 estática para no estar cambiando en el programa cada vez que se cambie la ip. Entramos a la línea 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 línea 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

Page 37: Jsf tutorial

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 después se vuelve a perder la conexión. 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

Page 38: Jsf tutorial

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 [email protected]