J2EE
Java 2 Enterprise Edition
Servlets
Servlets
JSPJSPs
Java
JDBC
JDBC
DAW
06/07
Copyright © 2006 Raquel CEDAZO LEÓN
Raquel CEDAZO LEÓN
[email protected]
1
J2EE
Java 2 Enterprise Edition
Copyright © 2006 Raquel CEDAZO LEÓN
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
DAW
06/07
Raquel CEDAZO LEÓN
[email protected]
2
J2EE
Índice
●
Introducción
● Servlets
● Tomcat
● Eclipse
● Filtros
● JSPs
● TagLibs
● JDBC
● ANT
● EasyEclipse
DAW
06/07
Raquel CEDAZO LEÓN
[email protected]
3
J2EE
Introducción (1/5)
● Diferentes plataformas de Java:
– J2SE (Java 2 Standard Edition)
● Desarrollo de aplicaciones y applets
– J2ME (Java 2 Micro Edition)
● Desarrollo de aplicaciones para microdispositivos (pantalla y memoria
limitados): PDAs y teléfonos móviles
– J2EE (Java 2 Plataform Enterprise Edition)
● Aplicaciones de servidor
● Con el tiempo, algunas APIs de J2EE se van pasando a J2SE
● J2EE es un conjunto de especificaciones orientadas al desarrollo
de aplicaciones empresariales
Raquel CEDAZO LEÓN
[email protected]
4
DAW
06/07
J2EE
Introducción (2/5)
● Características de las aplicaciones empresariales:
– Acceso a base de datos
– Transaccionalidad
– Escalabilidad
– Disponibilidad
– Seguridad
– Integración
● Arquitectura de tres capas:
– Máquina cliente
– Máquina servidor J2EE
– Base de datos
DAW
06/07
Raquel CEDAZO LEÓN
[email protected]
5
J2EE
Introducción (3/5)
● Especificaciones principales:
– Servlets: API para crear aplicaciones web dinámicas
– JSPs (Java Server Page): extensión de Servlets para facilitar el
desarrollo de aplicaciones web
– JDBC (Java Dabase Connectivity): API para acceder a base de
datos (incluida en J2SE)
– JNDI (Java Naming and Directory Interface): API para acceder a
servicios de directorios. Ej. LDAP (incluida en J2SE)
– JMS (Java Message Service): API para colas de mensajes
asíncronas
– EJBs (Enterprise JavaBeans): API para la realización de
componentes distribuidos
– JTA (Java Transaction API): API para realizar aplicaciones
transaccionales distribuidas
Raquel CEDAZO LEÓN
[email protected]
6
DAW
06/07
J2EE
Introducción (4/5)
– JavaMail: API para realizar aplicaciones de email independientes de
plataforma y protocolo
– JAF (JavaBeans Activation Framework): API necesario para
JavaMail para manejar mensajes MIME (Multipurpose Internet Mail
Extension)
– JAXP (Java API for XML Processing): API para parsear XML y
transformaciones XSLT
– JCA (Java Connector Architecture): API para conectar con otros
sistemas de información. Ej. centro de mensajes cortos
– JAAS (Java Authentication and Authorization Server): API que
proporciona mecanismos de autenticación y autorización
DAW
06/07
Raquel CEDAZO LEÓN
[email protected]
7
J2EE
Introducción (5/5)
● J2EE no deja de ser un CONJUNTO DE ESPECIFICACIONES.
Existen diferentes implementaciones según el fabricante:
– Libres
● Tomcat: Contenedor de Servlets y motor de JSPs
● JBoss: Servidor de aplicaciones J2EE
● Geronimo: Servidor de aplicaciones J2EE
– Comerciales
● BEA WebLogic Server
● IBM WebSphere
● Oracle Application Server
DAW
06/07
Raquel CEDAZO LEÓN
[email protected]
8
J2EE
Servlets. Introducción (1/4)
● API para la generación de contenido dinámico
● Servlet: clase Java que recibe peticiones (normalmente HTTP) y
genera una respuesta (normalmente HTML o XML)
● Una aplicación web compuesta de Servlets se ejecuta en un
servidor de aplicaciones web (contenedor)
Usuario
navegador
HTTP TCP / IP
Peticion (GET / POST)
Respuesta
DAW
06/07
Servlet Container (Tomcat)
Servlet
Servlet
Servlet
Raquel CEDAZO LEÓN
[email protected]
9
J2EE
Servlets. Ejemplo: “Hola Mundo Servlet” (2/4)
EJEMPLO
●
Imprime la cadena “Hola Mundo desde un Servlet” en una página
web
● Ficheros:
– HolaMundoServlet.java
– web.xml
DAW
06/07
Raquel CEDAZO LEÓN
[email protected]
10
J2EE
Servlets. Ejemplo: “Hola Mundo Servlet” (3/4)
HolaMundoServlet.java
package servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class HolaMundoServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body><h1>Hola Mundo desde un Servlet</h1></body>");
out.println("</html>");
Raquel CEDAZO LEÓN
[email protected]
11
DAW
06/07
}
}
J2EE
Servlets. Ejemplo: “Hola Mundo Servlet” (4/4)
web.xml
<?xml version="1.0" encoding="ISO88591"?>
<!DOCTYPE webapp
PUBLIC "//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/webapp_2_3.dtd">
<webapp>
<displayname>Ejemplos</displayname>
<description>
Ejemplos de J2EE (DAW0607)
</description>
<servlet>
<servletname>HolaMundoServlet</servletname>
<servletclass>servlets.HolaMundoServlet</servletclass>
</servlet>
<servletmapping>
<servletname>HolaMundoServlet</servletname>
<urlpattern>/HolaMundoServlet</urlpattern>
</servletmapping>
</webapp>
DAW
06/07
Raquel CEDAZO LEÓN
[email protected]
12
J2EE
Tomcat (1/3)
● Servidor de aplicaciones web o Contenedor de Servlets
● Tomcat: http://tomcat.apache.org
● Descargar: Tomcat 5.0.28 (jakartatomcat5.0.28.tar.gz)
● Requisito: JDK (Java Development Kit)
● Descomprimir: tar zxvf jakartatomcat5.0.28.tar.gz
● export JAVA_HOME=”DIR_INSTALACION_JDK”
● Scripts de arranque y parada del servidor, dentro del
directorio /bin de instalación:
– Arrancar Tomcat:
./startup.sh
– Parar Tomcat:
./shutdown.sh
DAW
06/07
Raquel CEDAZO LEÓN
[email protected]
13
J2EE
Tomcat (2/3)
DAW
06/07
Raquel CEDAZO LEÓN
[email protected]
14
J2EE
Tomcat (3/3)
● Pasos para desplegar una aplicación web:
– Crear un archivo WAR (Ejemplo: DAW0607.war):
● WEB_INF
● WEB_INF/classes
● WEB_INF/lib
● WEB_INF/web.xml
– Copiar dentro del directorio webapps
– Reiniciar el Tomcat
– Abrir un navegador: http://localhost:8080/DAW0607/MI_APLICACION
● server.xml (directorio conf): permite definir nuevos contextos
<Context path="/daw0607" docBase="/home/rcedazo/workspace/DAW0607/web/"
reloadable="true">
</Context>
Raquel CEDAZO LEÓN
[email protected]
15
DAW
06/07
J2EE
Eclipse (1/2)
●
IDE (Integrated Development Environment)
● Descargar: Eclipse SDK 3.2.1 http://www.eclipse.org
● Requisito: JRE (Java Runtime Environment)
● Eclipse plugins: http://eclipseplugins.2y.net/
DAW
06/07
Raquel CEDAZO LEÓN
[email protected]
16
J2EE
Eclipse (2/2)
DAW
06/07
Raquel CEDAZO LEÓN
[email protected]
17
J2EE
Filtros. Introducción (1/5)
● Acciones repetitivas: control de seguridad, herramienta de logs,
sistema compresión de datos
● Solución tradicional: “include” de ficheros
● Filtro: mecanismo gestionado por el contenedor de Servlets que
intercepta las peticiones a Servlets o JSPs y que actúa antes y
después de pasar el control al Servlet
● Preprocesadores y postprocesadores de Servlets
● Transparencia y reutilización de código
● Contenido dinámico y estático (HTML, imágenes)
● Métodos que impone la interfaz:
DAW
06/07
– init(): inicialización del filtro
– destroy(): destrucción del filtro
– doFilter(request, response, filterChain)
Raquel CEDAZO LEÓN
[email protected]
18
J2EE
Filtros. Ejemplo: “Velocidad Filter” (2/5)
EJEMPLO
● Mide el tiempo de ejecución de los Servlets y lo imprime por la
salida estándar
● Recibe un parámetro que indica la unidad en la que se quiere
medir el tiempo. En este caso pueden ser “segundos” o
“milisegundos”
● Ficheros:
– VelocidadFilter.java
– web.xml
DAW
06/07
Raquel CEDAZO LEÓN
[email protected]
19
J2EE
Filtros. Ejemplo: “Velocidad Filter” (3/5)
VelocidadFilter.java
package filters;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public final class VelocidadFilter implements Filter {
private FilterConfig filterConfig = null;
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
Raquel CEDAZO LEÓN
[email protected]
20
DAW
06/07
J2EE
Filtros. Ejemplo: “Velocidad Filter” (4/5)
long startTime = System.currentTimeMillis();
chain.doFilter(request, response);
long stopTime = System.currentTimeMillis();
String unidad = filterConfig.getInitParameter("unidad");
Double tiempo;
if (unidad.equalsIgnoreCase("segundos")) {
tiempo = new Double (((double)(stopTime startTime))/1000);
} else {
tiempo = new Double (stopTime startTime);
}
System.out.println("Tiempo de ejecución del servlet
["+((HttpServletRequest)request).getServletPath()+"]:
"+tiempo+" "+unidad);
}
public void destroy() {
this.filterConfig = null;
DAW
06/07
}
}
Raquel CEDAZO LEÓN
[email protected]
21
J2EE
Filtros. Ejemplo: “Velocidad Filter” (5/5)
web.xml
<filter>
<filtername>VelocidadFilter</filtername>
<filterclass>filters.VelocidadFilter</filterclass>
<initparam>
<paramname>unidad</paramname>
<paramvalue>segundos</paramvalue>
<description>Unidad en la que se mide el tiempo (milisegundos o
segundos)</description>
</initparam>
</filter>
<filtermapping>
<filtername>VelocidadFilter</filter
Comentarios de: J2EE Java 2 Entreprise Edition (0)
No hay comentarios