Actualizado el 14 de Marzo del 2019 (Publicado el 13 de Julio del 2018)
812 visualizaciones desde el 13 de Julio del 2018
182,5 KB
53 paginas
Creado hace 17a (26/04/2007)
Tema 13: Servlets y JSP
1. Servlets.
Introducción.
1.
2. Objeto Request.
3. Objeto Response.
4. Cookies.
5. Sesiones.
2. JSP.
Introducción.
1.
2. Elementos JSP.
3. Java Beans.
4. Etiquetas
personalizadas.
5. JDBC
6.
Integración
Servlets y JSP
ARS - 2007
Servlets y JSP
1
SERVLETS: 1.1 Introducción
¿Qué son? (I)
Los Servlets son la alternativa Java a los CGIs.
Actúan como capa intermedia entre:
Petición proveniente de un Navegador Web u otro cliente HTTP
Bases de Datos o Aplicaciones en el servidor HTTP
Son aplicaciones Java especiales, que extienden la
funcionalidad del servidor HTTP, dedicadas a:
Leer los datos enviados por el cliente.
Extraer cualquier información útil incluida en la cabecera HTTP o
en el cuerpo del mensaje de petición enviado por el cliente.
Generar dinámicamente resultados.
Formatear los resultados en un documento HTML.
Establecer los parámetros HTTP adecuados incluidos en la
cabecera de la respuesta (por ejemplo: el tipo de documento,
cookies, etc.)
Enviar el documento final al cliente.
ARS - 2007
Servlets y JSP
2
SERVLETS: 1.1 Introducción
¿Qué son? (II)
ARS - 2007
Servlets y JSP
3
SERVLETS: 1.1 Introducción
¿Qué son? (III)
Los objetos servlets cumplen los siguientes requisitos:
Están basados en el marco de Servlets.
Utilizan el “Servlet Application Programming Interface” (SAPI)
El interfaz SAPI define una manera estándar para que las
peticiones HTTP sean procesadas por esta clase Java
(independiente del servidor).
Asociados a la URL de la petición, son manejados por el
contenedor de servlets con una arquitectura simple.
El contenedor provee el entorno de ejecución para todos los
servlets basados en los anteriores requisitos.
Disponibles para la gran mayoría de servidores web.
Son independientes de la plataforma y del servidor.
ARS - 2007
Servlets y JSP
4
SERVLETS: 1.1 Introducción
Ventajas de los Servlets
Cada petición por parte de un cliente crea un hilo, no un nuevo
proceso como ocurría con los CGIs tradicionales.
Son programados en Java, por lo que se puede emplear todas las
clases y herramientas disponibles para esta plataforma.
Controlada por la máquina virtual de Java.
La mayoría de problemas de seguridad encontrados en los CGIs
no aparecen en los Servlets.
Puede ser utilizados sobre cualquier SO. y en la mayoría de
Eficiencia.
Potencia.
Seguridad.
Portabilidad.
servidores Web.
Precio.
ARS - 2007
Normalmente todo el software necesario es gratis.
Servlets y JSP
5
SERVLETS: 1.1 Introducción
Ventajas de los Servlets
ARS - 2007
Servlets y JSP
6
SERVLETS: 1.1 Introducción
Arquitectura de los Servlets
Para implementar los servlets se hace uso de:
javax.servlet: entorno básico
javax.servlet.http: extensión para servlets http.
Servlet
HttpServlet
MiServlet
ARS - 2007
Servlets y JSP
7
SERVLETS: 1.1 Introducción
Estructura básica
throws ServletException, IOException
{
public void doGet(HttpServletRequest request,
import java.io.*;
// Para PrintWriter
import javax.servlet.*;
// Para ServletException
import javax.servlet.http.*; // Para HttpServlet*
public class PlantillaServlet extends HttpServlet {
HttpServletResponse response)
// El objeto "request" se utiliza para leer la
// cabecera HTTP, cookies, datos enviados (GET o POST)
// El objeto "response" para fijar la respuesta
PrintWriter out = response.getWriter();
// out Se utiliza para enviar el contenido al cliente
}
// Idem para el método doPost
}
ARS - 2007
Servlets y JSP
8
SERVLETS: 1.1 Introducción
Ejemplo
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HolaMundo extends HttpServlet {
public void doGet(HttpServletRequest request,
}
}
ARS - 2007
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println( "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " +
"HTML 4.0 Transitional//EN\">" +
"<html> <head><title>Hola Mundo</title></head>" +
"<body> <h1>Hola Mundo</h1> </body></html>");
Servlets y JSP
9
SERVLETS: 1.1 Introducción
Compilando e Invocando el Servlet
EL principal servidor (gratuito) de servlets y JSP es
“Tomcat” de Apache
(http://jakarta.apache.org/tomcat)
Pasos a seguir para el servidor Tomcat:
Verificar que el servidor está corriendo
Compilar el servlet:
> javac –classpath dir_instalacion/lib/servlet.jar nom_servlet
Situar el servlet compilado en una dirección adecuada:
> cp nom_servlet.class dir_tomcat/webapps/ROOT/WEB-
INF/classes
Invocar el servlet desde el browser:
> http://servidor:puerto/servlet/nom_servlet
(El puerto se configura en dir_install/conf/server.xml)
ARS - 2007
Servlets y JSP
10
SERVLETS: 1.1 Introducción
Ciclo de vida de un servlet
El servidor recibe una petición que ha de ser manejada
por un servlet.
El servidor comprueba si existe una instancia creada en
memoria de la clase servlet correspondiente. Si no, la
crea.
Las peticiones posteriores de otros usuarios utilizarán la
misma instancia.
El objeto servlet permanece en memoria mientras el
servidor siga en funcionamiento.
ARS - 2007
Servlets y JSP
11
SERVLETS: 1.1 Introducción
Diagrama del ciclo de vida
Cargar
Servlet
NO
Petición
HTTP
Recepción
de la
petición
SAPI
¿Servlet en
Memoria?
SI
Ejecutar
Servlet
SAPI
Contenedor Servlets / JSP
Servidor HTTP
Envío de
la
respuesta
Respuesta
HTTP
ARS - 2007
Servlets y JSP
12
SERVLETS: 1.1 Introducción
Métodos implícitos (ciclo de vida)
init
Se ejecuta una vez, la primera vez que es invocado el servlet (el
servlet se carga en memoria y se ejecuta sólo la primera vez que
es invocado. El resto de peticiones generan un hilo).
service (no debe sobreescribirse)
Se ejecuta cada vez que se produce una nueva petición.
Dentro de esta función se invoca a doGet o a doPost.
doGet y doPost
Manejan las peticiones GET y POST.
Incluyen el código principal del servlet
estos métodos.
destroy
La ejecución del servlet finalizará cuando termine la ejecución de
Se invoca cuando el servidor decide eliminar el servlet de la
memoria (NO después de cada petición).
ARS - 2007
Servlets y JSP
13
SERVLETS: 1.1 Introducción
Ciclo de ejecución de los métodos
Evento de inicio
(primera petición)
Petición
Respuesta
Evento de
destrucción
init()
service()
doGet()
doPost()
destroy()
Servlet
ARS - 2007
Servlets y JSP
14
SERVLETS: 1.1 Introducción
Objetos implícitos (I)
Existen una serie de objetos implícitos, disponibles dentro
de nuestros servlets (instanciados por el propio contenedor
de servlets y JSP).
Objeto request
Es una instancia de HttpServletRequest
(javax.servlet.http.HttpServletRequest)
Recoge la información enviada desde el cliente.
Objeto response
Es una instancia de HttpServletResponse
(javax.servlet.http.HttpServletRequest)
Organiza los datos enviados al cliente.
Objeto session
Es una instancia de HttpSession (javax.servlet.http.HttpSession)
Almacena información con ámbito de sesión.
ARS - 2007
Servlets y JSP
15
SERVLETS: 1.1 Introducción
Objetos implícitos (II)
Objeto application
Es una instancia de ServletContenxt (javax.servlet.ServletContext)
Almacena información con ámbito de aplicación.
------------------------------------------------------------------------
Objeto out
Es una instancia de PrintWriter (java.io.PrintWriter)
Escribe contenido dentro de la página HTML.
Objeto config
Es una instancia de ServletConfig (javax.servlet.ServletConfig)
Contiene información relacionada con la configuración del servlet.
ARS - 2007
Servlets y JSP
16
SERVLETS: 1.1 Introducción
Ejemplo (I)
public class MuestraMensaje extends HttpServlet {
private String mensaje;
private String mensaje_por_defecto = "No hay mensaje";
private int repeticiones = 1;
public void init() throws ServletException {
ServletConfig config = getServletConfig();
mensaje = config.getInitParameter("mensaje");
if (mensaje == null) {
}
try {
mensaje = mensaje_por_defecto;
String repetir_cad =
config.getInitParameter("repeticiones");
repeticiones = Integer.parseInt(repetir_cad);
} catch(NumberFormatException nfe) {}
}
ARS - 2007
Servlets y JSP
17
SERVLETS: 1.1 Introducción
Ejemplo (II)
// (continua ..)
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String titulo = "Servlet MuestraMensaje";
out.println("HTML 4.0 Transitional//EN\">" +
"<html><head><title>" +titulo + "</title></head>" +
"<body bgcolor=\"#FDF5E6\">\n" +
"<h1 align=\"center\">" + titulo + "</h1>");
for(int i=0; i< repeticiones; i++)
out.println("</body></html>");
out.println(mensaje + "<br>");
Servlets y JSP
18
}
}
ARS - 2007
SERVLETS: 1.2 Objeto Request
Datos enviados desde el cliente
El objeto request contiene todos los datos enviados
desde el cliente al servidor.
Todos los servlets implementan la interfaz
ServletRequest, que define métodos para acceder a:
Los parámetros enviados por el cliente dentro de la URL o dentro
del cuerpo del mensaje (p.e. a partir de un formulario)
Comentarios de: Tema13: Servlets y JSP (0)
No hay comentarios