viernes, 25 de octubre de 2013

Java Web con JDBC

Java Web con JDBC

En este post veremos como hacer para comprender como Responder en una página Web resultados de Consultas de Base de Datos, así también como hacer sentencias de Insert, Update, Delete, llamadas a Procedimientos desde una petición HTTP.

Guía de Trabajo

Descargar https://www.dropbox.com/s/l94xcnzgb8hdcrk/example-jdbc-derby.zip para crear el proyecto JDBC
Descargar https://www.dropbox.com/s/7cgbzaq9bljj7qt/tutorial-java-web-jdbc.zip para crear el proyecto WEB


  • Después de importar los proyectos
  • En proyecto "" modificar propiedades de Conexión a Base de Datos editando el archivo "/META-INF/db.properties"
  • Crear los siguientes Test Unitarios del Proyecto "Run JUNIT TEST" para
    • Crear Tablas en Bases de Datos
    • Probar TestUnit de INSERT
    • Probar TestUnit de SELECT
    • Probar TestUnit de UPDATE
    • Probar TestUnit de DELETE
    • Probar TestUnit de CallProcedure
  • Probar en Proyecto WEB Servlets:
    • JDBCProductoServlet.java

Tarea: Hacer Servlets y Páginas HTML para Modificar, Borrar, Consultar Producto.

viernes, 18 de octubre de 2013

Manejo de Sesiones con Java

Manejo de Sesiones con Java

Objetivos de la Clase de Manejo de Sesiones

  • Cookies
  • URL-Rewriting
  • Manejo de Http Cookies con Java
  • HttpSessión
  • SetAttribute y GetAttribute
Hablaremos de como se maneja la sesiones, mediante uso de Cookies y mediante reescritura de URL.

Después de Aprender los conceptos básicos HTTP crearemos nuestro segundo proyecto Web de donde veremos como hacer para utilizar los componentes Java para manejar Sesiones.

Crear Proyecto Web utilizando Maven

mvn archetype:generate -DgroupId=com.roshka -DartifactId=tutorial-java-web-session -Dversion=1.0.0 -DarchetypeGroupId=com.roshka -DarchetypeArtifactId=eclipse-web-project-session-archetype -DarchetypeVersion=1.0.1 -DinteractiveMode=false

viernes, 11 de octubre de 2013

Ambiente de Desarrollo - Java Web

 Instalar JDK en c:/java (importante, no en program files)
pueden ser para Windows
2) Instalar Eclipse JEE Kepler en c:/curso/java_web/ desde 
2.1) Configurar Eclipse
en Preferencias->Java->Installed JREs debe apuntar al JDK 6 instalado en el paso 2
3) Instalar Maven en c:/curso/java_web/
Configurar Variables de Ambiente y actualizar PATH como dice en documentación,
Desde Consola ejecutar mvn -version para corroborar que funciona.
3.1) Configurar Maven
copiar en Windows User Home 
ex Users/$Usuario/.m2/settings.xml (se incluye como anexo o descargar de https://www.dropbox.com/s/dh7cz6rv2rhew4y/settings.xml)
3) Acceder a Repositorio Maven
Verificar acceso a URL
4) Instalar Tomcat 7 en c:/curso/java_web/


-------------------------

Instalar Java en Windows
Instalar Java en Otros Sistemas Operativos
Instalar Eclipse (Utilizar el último - Kleper)
Instalar Maven en Windows
Instalar Tomcar en Windows


Clase Virtual número 1 - 20131011

Buenas tardes a todos,

En este POST estaré publicando la lista de tareas que realizaremos.


  • Objetivos de la Clase de Hoy
    1. Armar Ambiente de Desarrollo en Eclipse IDE
    2. Creación de Primer Proyecto Web en Eclipse IDE
    3. Utilizando el Primer Proyecto Web, Identificar las diferentes Clases que se utilizan
      • HttpServlet
      • HttpServletRequest
      • HttpServletResponse
      • PrintWriter
      • ServletContext
      • ServletException
      • IOException
    4. Utilizando el Primer Proyecto Web, Identificar y Comprender la utilización de los Métodos de HTTP
      • GET - doGet
      • POST - doPost
      • PUT - doPut
      • DELETE - doDelete
      • etc
    5. Crear un Servlet procesar Petición y Preparar Respuesta.

  • Contenido
Armar Ambiente de Desarrollo

Dirigirse a
http://java-web-uaa.blogspot.com/2013/10/ambiente-de-desarrollo-java-web.html
Creación de Primer Proyecto Web en Eclipse
http://java-web-uaa.blogspot.com/2013/10/primer-proyecto-java-web-en-eclipse.html
http://java-web-uaa.blogspot.com/2013/10/integracion-tomcat-eclipse.html (*ref1)

Utilizando el Primer Proyecto Identicar Clases

Después de Haber Importando el Proyecto (ref1) Procederemos a Comprender las Clases e Interfaces del API Servlet.



Abrir clase java HelloWorld,



La clase HelloWorld extiende javax.servlet.http.HttpServlet y sobrescribe el método doGet(HttpServletRequest req, HttpServletResponse resp) que es llamado cuando el Servidor Http recibe una petición de tipo GET desde el Browser.

En método doGet recibe dos parámetros, el primero es un objeto de tipo HttpServletRequest que contiene toda la información acerca de la petición de la página web y el segundo es un objeto de tipo HttpServletResponse que se utiliza para rellenar la respuesta que será enviada al Browser.
En el código fuente se puede ver como obtenemos un objeto java.io.PrintWriter del objeto HttpServletResponse

Las llamadas a los método doGet,doPost,doEtc pueden lanzar las siguientes excepciones de Clase ServletException,IOException

La Clase HelloWorld se registra en el Contenedor de Servlets mediante un annotation (http://docs.oracle.com/javase/tutorial/java/annotations/) @WebServlet donde se especifica como se va identificar a ese Recurso. ejemplo http://localhost:8080/hello-world/HelloWorld (http especifica el protocolo, localhost:8080 la Dirección IP y el Puerto, /hello-world aplicación WEB dentro del contenedor (Aplicación) y /HelloWorld recurso dentro de la aplicación que es definido por ejemplo en la creación de la Clase Servlet.



Identificar Llamadas a Métodos 
Como habiamos hablado en la Introducción a la Web, una petición HTTP está compuesta por establecer una conexión en Capa de Transporte y Hacer una Petición con la Siguiente Estructura (Ejemplo)

Conexión con Telnet
Abrir Telnet, Escribir como texto
PUT /hello-world/http-method HTTP/1.1
Host: telnet

Aguardar Respuesta

Conexión con Telnet, Ahora con PUT












Entonces con estas llamadas podemos ver como de acuerdo al tipo de Método HTTP cambia la respuesta, de acuerdo a que método JAVA es invocado en el Servlet

Ejercicio: Hacer Prueba con POST y DELETE

jueves, 10 de octubre de 2013

Materiales de Apoyo para Curso de Java Web

Para empezar con HTML podemos ver
Tutorial

Manual de Referencia

Ejemplos

Para empezar con CSS
Tutorial

Referencia

Ejemplos

Para empezar con Java Script podemos ver
Tutorial

Manual de Referencia

Ejemplos

Para empezar con JQuery podemos ver
Tutoriales

Referencias



Ejemplos

Descargar

Integración Tomcat - Eclipse

Eclipse y Tomcat
Descargar Video https://www.dropbox.com/s/g6fzjy832600bpt/eclipse-tomcat.zip, Descomprimir zip, y abrir integracion-proyecto-eclipse-tomcat.htm
El video tiene como objetivo ver como hacer para 
1) Integrar Tomcat en el Eclipse
2) Importar el Proyecto creado con el script maven
3) Probar como funciona un Servlet en Tomcat desde el Browser(siempre integrado en Eclipse)

Primer Proyecto Java Web en Eclipse

Prerequisitos

Instalar Java
Instalar Maven
Configurar Maven

Hacer

Utilizar Consola de Windows
Posicionarse en Espacio de Trabajo (Workspace)  ejemplo d:/wokspace
Ejecutar el Script (*)
 mvn archetype:generate -DgroupId=com.roshka -DartifactId=hello-world -Dversion=1.0.0 -DarchetypeGroupId=com.roshka -DarchetypeArtifactId=eclipse-web-project-archetype -DarchetypeVersion=1.0.0 -DinteractiveMode=false
Hacer CD hello-world
Ejecutar Script
mvn install
Aguardar mensaje de OK
Para no descargar remotamente todo, se puede descargar el repository maven y reemplazar por el que se encuentra en .m2

Materiales de apoyo en Java

Materiales útiles para aprender Java

Enlaces

Programación Orientada a Objetos

  • http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos#Conceptos_fundamentales

Libros

Thinking in Java

  • http://pervasive2.morselli.unimo.it/~nicola/courses/IngegneriaDelSoftware/java/ThinkingInJava.pdf

Tutoriales Java

Colecciones
  • http://docs.oracle.com/javase/tutorial/collections/
  • http://docs.oracle.com/javase/tutorial/collections/intro/index.html
  • http://docs.oracle.com/javase/tutorial/collections/interfaces/index.html
Generics

Introducción de la Web

Introducción al curso

  • Conceptos de la Web
  • Historia
  • HTTP
  • HTML
  • Recursos Web
  • Web Server
  • Web Browser
  • Dirección IP
  • Dominio
  • Puerto
  • TCP
  • Métodos HTTP
  • Petición - Respuesta