Download Servlets y JSP

Document related concepts
no text concepts found
Transcript
Servlets y JSP
www.softclear.net
Módulo 1
Introducción a Java EE
www.softclear.net
Java EE
También conocida como J2EE
●
Especificación del Java Community Process - JCP
●
Arquitectura de N capas
●
Se ejecuta sobre un “contenedor Java EE”
●
Basado en las librerías de Java SE
●
Incluye librerías adicionales extensibles
●
www.softclear.net
Contenedor Java EE
Contenedor
Web
Negocios
[JSP y Servlets]
[EJB]
Servicios
Conectores
Ofrece servicios transaccionales, de seguridad, escalabilidad,
concurrencia y ciclo de vida de componentes
JVM
Sistema Operativo
Hardware
www.softclear.net
Tendencias actuales
Acceso directo a entidades
●
POJO´s – Plain Old Java Objects [Java Beans]
●
Foco en patrones de diseño
●
Orientado a la web
●
Reducción de costos
●
Mejora de rendimiento
●
www.softclear.net
Contenedor Web
Marco de trabajo ORM
[Object Relational Mapping]
JSP
Servlet
Servicios
Conectores
Contenedor Web Java EE
JVM
Sistema Operativo
Hardware
www.softclear.net
Contenedor Web
Vista
Modelo
Controlador
Servicios
Conectores
Patrón MVC
JVM
Sistema Operativo
Hardware
www.softclear.net
En particular, el contenedor web:
Gestiona el ciclo de vida de los Servlets
●
Convierte JSP´s en Servlets
●
Recibe peticiones HTTP y las representa en objetos
●
Emite respuestas HTTP representadas en objetos
●
www.softclear.net
Llamada a un JSP
www.softclear.net
Estructura de una aplicación web
www.softclear.net
Módulo 2
Servlets
www.softclear.net
¿Qué es un Servlet?
Clase Java encargada de recibir peticiones y responderlas
●
Es extensible
●
Manejada por el contenedor [ciclo de vida, instancia, etc.]
●
El caso común es el uso de HttpServlet
●
Su función principal es la de controlador
●
www.softclear.net
Arbol de herencia
www.softclear.net
Cuerpo de la clase HttpServlet
www.softclear.net
Ejemplo de Servlet
package com.softclear.controller;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HolaMundoServlet extends HttpServlet {
public void doGet (HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException{
}
}
res.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<head><title>Hola Mundo</title></head>");
out.println("<body>");
out.println("<h1>Hola Mundo</h1>");
out.println("</body>");
out.println("</html>");
out.close();
www.softclear.net
Ejemplo de Servlet
Recibe una petición vía GET del protocolo HTTP
●
Devuelve una respuesta con código HTML al cliente
●
Por si solo, el Servlet no define la dirección IP y el puerto por
donde va a escuchar y a atender peticiones
●
El descriptor de despliegue se encarga de esta tarea
●
www.softclear.net
Descriptor de Despliegue
Ofrece información sobre el contenido de la aplicación
●
Configura los parámetros necesarios para su funcionamiento
●
Registra variables locales a la aplicación
●
Registra constantes de la aplicación
●
Ubica recursos requeridos por los componentes web
●
El nombre por defecto del archivo descriptor de despliegue es
web.xml
●
www.softclear.net
Ejemplo web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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>
<display-name>
Proyecto Servlet
</display-name>
<description>
Mi primer Servlet
</description>
<servlet>
<servlet-name>Hola</servlet-name>
<servlet-class>com.softclear.controller.HolaMundoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hola</servlet-name>
<url-pattern>/miservlet</url-pattern>
</servlet-mapping>
</web-app>
www.softclear.net
Arquitectura
www.softclear.net