JSP JDBC SALVADORES OLAIZOLA,



Documentos relacionados
Servlets y JSP. Qué son CGI? 04/03/2014

Requisitos. Universidad ORT Arquitectura de Software

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

Servlets. Unidad: 4 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets. ISIS1206 Estructuras de Datos

envía al browser. El browser despliega el archivo.

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat

Arquitectura J2EE para aplicaciones web. Aplicaciones web con JSP. Arquitectura J2EE: Capa de Acceso Web. Arquitectura J2EE: Capa Cliente

Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, ILI 258 Departamento de Informática Universidad Técnica Federico Santa María

Java 2 Enterprise Edition

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Introducción a los servlets

Configuración servidor Tomcat

Ejemplos de Servlet y JSP Web Application Development

INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA

Acceso a BD desde Java. JDBC

[CASI v.0109] Pág. 1

Conexión de Mysql con NetBeans

Introducción a Plone y Zope. Presentación introductoria sobre Plone y las tecnologías utilizadas, como Zope y Python.

Capitulo 5. Implementación del sistema MDM

Desarrollo de Software con

[CASI v.0109] Pág. 1

Tema 6: Arquitectura Web Multicapa

Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages)

Manual de NetBeans y XAMPP

Facultad de Sistemas e Informática

Práctica 2: Instalación de un gestor de bases de datos relacionales y desarrollo de una aplicación Web con persistencia de datos

ISJu: Técnicas de Programación Cartilla Teórica-Práctica Instalación del "Eclipse IDE for Java EE Developers" y el servidor "Apache Tomcat"

Instalación de Tomcat7 en Ubuntu

Sistemas de Información 12/13 Servlets y JSPs (Java Server Pages)

El Internet tuvo origen en los Estados Unidos de Norte América cuando en un proyecto

1. Definición. Open Source. Escalable. Alto desempeño. Arquitectura Modular. Producto de licencia de código abierto sin coste adicional.

Java y MySQL. Ciclo de ejecución

Cómo puede ayudarle JBuilder en sus Desarrollos Java?

Gestión Documental PREPARACION DEL ENTORNO DE DESARROLLO

GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación

Productos para desarrollar aplicaciones web: ASP, CFM, JSP y PHP

Curso: Programación con JAVA SE Estándar Edition.

Un servlet es una clase java que implementa la Servlet interface. Un servlet corre dentro de un contexto denominado Servlet engine.

Para poder instalar el producto, tendremos que obtener el instalador apropiado para nuestro entorno hardware y software.

Contiene código HTML normal junto elementos especiales de JSP. Internamente, el servidor de aplicaciones las compilará a un servlet

Técnico Superior en Programación con Java SE Standard Edition

Capítulo III. Análisis y diseño.

Desarrollo y servicios web Sesión 18

Sesión 5: Instalación de aplicaciones

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA

Introducción a JDBC - Base de datos con Java

Desarrollo de Sistemas Software Basados en Servicios y Componentes

aplicaciones web: ASP, CFM, JSP y PHP

Universidad Tecnológica del Valle del Mezquital. Desarrollo de Aplicaciones Web. Manual JSP

CEFIRE de Valencia Curso Iniciación a Edubuntu Código: 07VA66EA036

Diplomado Java Web Programming with Servlets, JSP, JSF & Ajax

Sesión 5: Wine. Proyecto de formación en centros CEIP Benimamet Valencia

MANUAL INSTALACIÓN DE SUGARMINI PARA SUGAR CRM

Cursos PROGRAMACIÓN DE APLICACIONES CON JAVA

Agosto. Un primer JSP. Guía rápida. [ h t t p : / / w w w. o p e n b o x e r m b. c o m / j a v a. p h p ]

Ingeniería del Software Arquitectura Física en 3 niveles

Generador GeneXus JAVA

Instrucciones para el despliegue de EJBs

INTRODUCCIÓN A PHP. Javier Enciso

Universidad ORT - Arquitectura de Software. Requisitos

JOOMLA MANUAL USUARIO Creación del portal

Requisitos técnicos para la instalación. Arquitectura Hardware Arquitectura Software. Instrucciones de instalación GONG-R

Panorámica de la asignatura

Curso Desarrollo Java Web con JSP, Servlets y el MVC

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Aplicaciones J2EE. Repasamos. Tres tipos de aplicaciones. Aplicaciones Web Java Objetos distribuidos EJBs Aplicaciones Empresariales

Implementación CAPÍTULO 4

GUÍA TÉCNICA. Desarrollo de Sistemas de Información la plataforma Business Intellingence Pentaho

Practica 11: Conexión de Java con Bases de datos Access

UNIVERSIDAD AUTONOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Aplicaciones Cliente - Servidor

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Dossier de prácticas

Notas técnicas de JAVA Nro. 7 Tip Breve

Modelo de Objetos Distribuidos

Java Web Server Tabla de Contenidos

Cada vez que la misma computadora solicita una página pg con un browser, junto con la solicitud el browser envía la cookie al servidor.

TEMARIO. 4-Servlet Definición de servlet El Web Container y el ciclo de vida de los servlets El ciclo request- response.

javax.servlet.genericservlet javax.servlet.http.httpservlet MiServlet

%& %)& '$!%*+ $, %%%&$ %%

Qué ofrece Autentia?

Tema 1. Introducción a JAVA

SENTINEL REMOTE CONTROL (S.R.C)

Curso Android Curso Online Desarrollo en Celulares con Android

Podemos descargar la distribucion de gnu/linux de los repositorios de Ubuntu

JOOMLA MANUAL USUARIO Creación del portal

UNIVERSIDAD DE PIURA

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Escribir código HTML en los servlets es tedioso. que hay que utilizar las instrucciones print, println, etc. Es decir, HTML está dentro de java.


Implementando nuestro primer servlet

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2

Base de Datos JDBC. Unidad: 1 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

GUIA RÁPIDA DE VNC Antonio Becerro 2005

Federico Peinado

Servidores de aplicaciones. Sesión 1: Introducción a los servidores de aplicaciones. Instalación de BEA WebLogic

Transcripción:

JAVA & J2EE: Curso Básico Diseño de Aplicaciones Web 2004-2005 http://laurel.datsi.fi.upm.es/~ssoo/daw/ Java Servlets JSP JDBC EJB SALVADORES OLAIZOLA, Manuel msalvadores@inicia.es

Licencia Copyright (c) SALVADORES OLAIZOLA, Manuel Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License" http://www.gnu.org/copyleft/fdl.html

Objetivos & Indice Adquirir conceptos básicos sobre: Servlet s & JSP Tomcat & JBOSS JDBC MYSQL Eclipse y ANT EJB

Concepto de Servlet Un Servlet es una clase Java usada para extender la capacidad de las aplicaciones basadas en el modelo cliente servidor y ejecución petición respuesta. Los Servlets son una potente herramienta para la generación de contenido dinámico en la Web. El Servlet Container es el componente encargado de la creación, acceso y destrucción de los Servlets, controla su ciclo de vida. Usuario navegador HTTP TCP / IP Peticion (GET / POST) Servlet Container (Tomcat) Respuesta Servlet Servlet Servlet

Concepto de Servlet Un Servlet es una clase Java que extiende de javax.servlet.http.httpservlet y que sobreescribe los métodos dopost o doget o ambos. La petición se representa por la clase HttpServletRequest. La respuesta se representa por la clase HttpServletResponse. package ejemplos; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet { } public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<body><h1>hola Mundo</h1></body>"); out.println("</html>"); }

Concepto de JSP Un JSP, es una página dinamica de servidor Java. Es un archivo de texto compuesto de : 1. Cabecera con importaciones y parametros. 2. Código cliente, normalmente HTML, XML y Javascript. 3. Código servidor Java, denominado Scriptlet y escrito entre los caracteres <% y %>. 4. Tags: instrucciones en formato XML, asociadas a clases Java. Un JSP se transforma en un Servlet en tiempo de ejecución.

Concepto de JSP <%@ page import= ejemplo.usuario" %> Cabecera <body> Contenido HTML <html> <jsp:getproperty name= usuario" property="username" /> <br/> Tag <% String sedad = request.getparameter( edad ); Scriptlet if (sedad!= null) { int iedad = Integer.parseInt(sEdad); if (iedad > 17) out.print( eres mayor de edad ); else out.print( NO eres mayor de edad ); } %> </html> </body>

Procesamiento JSP La primera vez que se realiza una petición sobre un JSP el JSP Engine lo traduce en un Servlet, lo compila y lo procesa. En sucesivas peticiones simplemente se procesa a través del Servlet Container. Servlet Container JSP Engine Request JSP 1ª pet ición? Si JSP Parser Jasper Jikes Servlet Java Source No Com piler Javac Response Servlet Process Servlet Java byte code

Servlet Container: Tomcat Tomcat es la implementación de referencia de la especificación de Servlet y de JSP. Es totalmente gratuito y se puede descargar de http://jakarta.apache.org/tomcat/ con licencia Apache Software License. Existen distribuciones para todas las plataformas existentes. Cada versión de Tomcat lleva asociada una compatibilidad de las especificaciónes de Servlet y JSP. Servlet / JSP 2.4 / 2.0 2.3 / 1.2 2.2 / 1.1 Tomcat Version 5.0.28 4.1.31 3.3.2

Tomcat: Instalación en windows Paso 1: Instalación del JDK Java Development Kit (recomendada versión 1.4.2) Único parametro que debemos indicar es la carpeta de instalación. Paso 2: Instalación de Apache Tomcat versión 5.0.28 En la instalación detecta automaticamente el JDK instalado anteriormente. Debemos configurar en que puerto queremos que escuche el servidor y poner el usuario y el password del administrador. Paso 3:Arranque del servidor:

Tomcat: Instalación en linux Paso 1: Instalación del JDK Java Development Kit (recomendada versión 1.4.2)./j2sdk-1_4_2_05-linux-i586.bin instalará el jdk en el directorio que lo contiene. Paso 2: Instalación de Apache Tomcat : Una vez descargado jakarta-tomcat-5.0.28.tar.gz lo situamos en el directorio que deseamos instalarlo y realizamos la siguiente secuencia de comandos : 1. gunzip jakarta-tomcat-5.0.28.tar.gz 2. tar xf jakarta-tomcat-5.0.28.tar 3. JAVA_HOME=<dir_install_jdk> 4. export JAVA_HOME Paso 3:Arranque del servidor En el directorio de instalación de tomcat encontramos los Shell Script de arranque y parada del servidor. Para arrancar el servidor deberemos ejecutar startup.sh

Estructura aplicación 3 2 1 1 Raiz de aplicación: lugar donde se situan los archivos accesibles a traves del petición HTTP GET. 2 web.xml: es el archivo de configuración de aplicaciones Web. En este archivo debemos registrar los Servlet. 3 Los subdirectorios de classes son los paquetes de aplicación. En este caso hay dos paquetes: ejemplos: que contiene el Servlet HolaMundoServlet util: que contiene la clase Usuario, que es utilizada por el Servlet.

Especificación Servlet El API que proporciona Sun para la especificación de Servlets se encuentra publicada en http://java.sun.com/products/servlet/2.x/javadoc/ La especificación se divide en dos paquetes: javax.servlet javax.servlet.http Clases más importantes, para el protocolo HTTP. HttpServlet <<HttpServletResquest>> <<HttpServletResponse>> Clase que extenderemos para implementar nuestro servlets. Sobrescribiremos los métodos dopost y doget para implementar la lógica de nuestras aplicaciones. Interfaz que representa la petición que se realiza sobre un servlet. Mediante esta interfaz podemos acceder la sessión del usuario, parametros enviados por POST/GET o parametros de configuración. Interfaz que representa la respuesta generada por un Servlet Proporciona métodos para generar la salida dinámica.

Implementación Servlet Pasos para la implementación de un Servlet (Ejemplo): 1. Crear una clase Java que extienda de HttpServlet 2. Sobreescribir el método dopost o doget o ambos. 3. Obtener la salida 4. Enviar el contenido dinámico 5. Compilar el Servlet 6. Mapear la clase a una URL en el fichero web.xml 7. Ejecutarlo / Probarlo

Implementación Servlet HolaMundoServlet.java package ejemplos; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HolaMundoServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<head><title>titulo</title></head>"); out.println("<body><h1>hola Mundo</h1></body>"); out.println("</html>"); } }

Implementación Servlet HolaMundoServlet.java package ejemplos; Paquete donde se encuentra el Servlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; Importaciones, librerias necesarias. public class HolaMundoServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.setcontenttype("text/html"); Declaración de clase que extiende de HttpServlet Sobreescritura método doget Respuesta texto en formato HTML PrintWriter out = response.getwriter(); Obtención de la salida. } } out.println("<html>"); out.println("<head><title>titulo ejemplo Servlet 1</title></head>"); Generación de out.println("<body><h1>hola Mundo</h1></body>"); contenido dinámico. out.println("</html>");

Compilación Servlet Secuencia de instrucciones para la compilación de un Servlet: 2. set CLASSPATH=D:\Tomcat 5.0\common\lib\servlet-api.jar añadimos la librería que contiene el API de Servlet 3. set PATH=%PATH%;D:\j2sdk1.4.1_03\bin añadimos el directorio donde se encuentra el comando JAVAC para poder compilar desde el directorio CLASSES de nuestra aplicación 4. javac ejemplos\holamundoservlet.java llamada al compilador de Java pasando como parametro el fichero que queremos compilar.

Configuración: web.xml Web.xml : Es el fichero de configuración de aplicaciones Web. Registra los Servlets mediante el Tag XML <servlet>. Asocia URL s con los Servlets. <servlet-mapping> Configura parametros de seguridad. Debe estar siempre situado en el directorio WEB-INF de cada aplicación contenida en el Servlet Container miaplicacion/web-inf/web.xml

Despliegue Una vez compilado y registrado el Servlet en el web.xml procedemos al despliegue y prueba de ejecución. Dos opciones: 1.- Servidor arrancado: debemos recargar la aplicación desde el planel de administración del Tomcat. 2.- Servidor caido: simplemente iniciandolo se desplegará nuestra aplicación.

Prueba Abriendo un navegador podemos probar el Servlet desarrollado. http://127.0.0.1/miaplicacion/ejemplo1 Directorio donde se situa la aplicación dentro de webapps URL mapping introducido en el web.xml. Parametro que asocia la ejecución de classes Servlet con URL s

Implementación JSP Pasos para la implementación de un JSP (Ejemplo): 1. Escribir el JSP 2. Ejecutarlo / Probarlo. JSP VS Servlet Pasos para la implementación de un Servlet (Ejemplo): 1. Crear una clase Java que extienda de HttpServlet 2. Sobreescribir el método dopost o doget o Generalmente el desarrollo de un JSP es mucho más rapido y ambos. cómodo que el de un Servlet. 3. Obtener la salida Pero hay casos en los cuales se deben implmentar Servlets. 4. Enviar el contenido dinámico 5. Compilar el Servlet 6. Mapear la clase a una URL en el fichero web.xml 7. Ejecutarlo / Probarlo

Implementación JSP miaplicacion/ejemplo2.jsp ejemplo2.jsp: es un JSP que en caso de no recibir el parametro nombre en el request imprimirá Hola Mundo, en otro caso Hola <nombre>

Probando el JSP Con situar el fichero JSP, en el directorio de la aplicación ya estará accesible a través del servidor. Desarrollando JSP no es necesario reacargar las aplicaciones ni reiniciar el servidor para comprobar los cambios.

Acceso a bases de datos: JDBC JDBC es un API (incluida tanto en las diferentes versiones de J2SE y J2EE) que proporciona conectividad con gestores de bases de datos. Es una interfaz de acceso a bases de datos, es decir SUN no proporciona una implementación, sino que son los fabricantes los que proporcionan drivers JDBC para que los programas Java tengan conectividad con sus bases de datos. JCP Programas Java BBDD El JCP publica especificación del JDBC para que los fabricantes que quieran conectividad lo implementen. Fabricantes de BBDD Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@host:port:sid, user, password); Los fabricantes distribuyen los drivers para sus bases de datos de acuerdo a la especificación publicada.

API JDBC El api JDBC lo podemos encontrar en los paquetes : java.sql javax.sql

JDBC: Las clases más usadas java.sql.connection Interfaz del paquete java.sql que representa la conexión con la base de datos. Pasos para obtener una conexión : Indicamos el driver de la base de datos que vamos a utilizar. Class.forName("oracle.jdbc.driver.OracleDriver"); Mediante la clase DriverManager (Gestor de drivers para acceso a bases de datos) obtenemos la conexión pasando como parametros la cadena de conexión especificada por el proveedor de base de datos, usuario y password. La cadena de conexión suele llevar incluido la maquina (host) y puerto (port) donde se encuentra la instancia de base de datos a la que accedemos. Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@host:port:sid", admin, pass );

JDBC: Cadenas de conexión Algunas cadenas de conexión para driver JDBC jdbc:oracle:thin:@host:port:sid jdbc:db2://host:port/instance jdbc:mysql://host:port/db&user=your_user&password=your_password jdbc:sapdb://host/dbname?autocommit=off&timeout=30

JDBC: Las clases más usadas java.sql.statement Es el objeto utilizado para ejecutar las sentencias SQL. Hay que pedirselo al objeto Connection Pasos para ejecutar una sentencia SQL : Obtenemos el objeto Statement a través de la conexión. Stament stmt = conn.createstatement(); A través del objeto Statement podemos lanzar las sentencias SQL. Los métodos más utilizados para ejecutar SQL son : executeupdate, executequerie o execute. int updates = stmt.executeupdate( update USUARIOS set TLF = 917658991 where COD = 1 ); Cierre de los objetos al finalizar su uso. Es importante. stmt.close(); conn.close();

JDBC: Las clases más usadas java.sql.resultset Es el objeto en el cual se almacenan el resultado de las consultas, se obtiene a través del Statement. Pasos para obtener los datos de una consulta : A través del Statement obtenido lanzamos consultas con el método executequery, este método nos devuelve un objeto Resultset con el resultado de la consulta. Resultset rs = stmt.executequery( SELECT * FROM USUARIOS ); Para obtener los datos debemos ejecutar siempre el metodo next del Resultset, este metodo devuelve true/false en funcion de la disponibilidad de datos. while(rs.next()) { System.out.println(rs.getString( NOMBRE )); System.out.println(rs.getString( APELLIDO1 )); } rs.close(); Una vez procesada la información debemos cerrar el resultset.

JDBC: Buenas prácticas 1. Centralizar el acceso a BBDD en algún paquete de nuestra aplicación. 2. Cerrar los objetos JDBC dentro de bloques finally 3. Usar PreparedStatement en vez de Statement 4. Especificar la lista de campos en las sentencias SELECT e INSERT 5. Intentar utilizar SQL estandar siempre. 6. Externalizar las sentencias SQL en ficheros, no incrustarlas en el codigo fuente. 7. Intentar no utilizar objetos propietarios (Ejemplo: OracleStatement )

Enterprise JavaBeans EJB EJB es una arquitectura para desarrollar y desplegar aplicaciones distribuidas basadas en componentes. Las aplicaciones basadas en EJB son escalables, transaccionales y con seguridad multiusuario.

Cuando usar EJB s Los EJB son adecuados cuando: Queremos construir una aplicación escalable, donde el posible crecimiento de usuarios puede provocar que el código que procesa nuestra aplicación esté repartido en varios servidores. Necesitemos asegurar la integridad de los datos. Los EJB al ser transaccionales aseguran la coherencia de los objetos compartidos y la atomicidad de los procesos complejos. La aplicación servidora sea accesible a través de diferentes tipos de clientes.

Tipos de EJB Session EJB: representación de procesos de lógica de negocio. Stateless: EJB de sesión sin estado Statefull: EJB de sesión con estado Entity EJB: representación de objetos de negocio. CMP Container Managed Persistence : persistencia manejada por el contenedor EJB. BMP Bean Managed Persistence : persistencia manejada por el JavaBean. MDB Message Driven Beans : EJB para procesado de mensajes asíncronos.

EJB Containers Open source BEA WebLogic Server 8.1

Arquitectura EJB Un EJB necesita de la implementación de tres ficheros: 1. Remote Interface 2. Home Interface 3. Enterprise Bean Class

Implementando Session EJB Un EJB necesita de la implementación de tres ficheros: 1. Remote Interface 2. Home Interface 3. Enterprise Bean Class

Implementando Session EJB Un EJB necesita de la implementación de tres ficheros: 1. Remote Interface 2. Home Interface 3. Enterprise Bean Class

Implementando Session EJB Un EJB necesita de la implementación de tres ficheros: 1. Remote Interface 2. Home Interface 3. Enterprise Bean Class

Cliente EJB Pasos para la instanciación de un EJB:

Empaquetamiento y despliegue jar cvf converter.jar org\ejemplo\ejb\session\converter.class org\ejemplo\ejb\session\converterhome.class org\ejemplo\ejb\session\converterbean.class META-INF Copy converter.jar <JBOSS_HOME>/server/default/deploy

Metodología de trabajo Entorno de desarrollo integrado (IDE) : www.eclipse.org

Metodología de trabajo ANT: Herramienta de Scripting Java basada en XML. http://jakarta.apache.org/ant

FIN Dudas: enviar mail a lista de correo de la asignatura con asunto DUDA JAVA. daw-alumnos@laurel.datsi.fi.upm.es