PDF de programación - Tecnologías Web: servlets

Imágen de pdf Tecnologías Web: servlets

Tecnologías Web: servletsgráfica de visualizaciones

Publicado el 22 de Agosto del 2020
453 visualizaciones desde el 22 de Agosto del 2020
259,2 KB
28 paginas
Creado hace 18a (26/10/2005)
Sistemas de
Información

Tecnologías Web. Interactividad y envío de
información Cliente → Servidor
Servlets

Agradecimientos: Jesus Villamor Lugo, Simon Pickin de IT/UCIIIM.

[email protected]

Concepto
¿Qué es un servlet?

Son componentes de una aplicación web que se ejecutan en el servidor
Permiten extender la funcionalidad del servidor (tanto de servidores HTTP

como de otro tipo de servidores como por ejemplo ftp)

Son una alternativa a los CGI
Cada petición se ejecuta en un hilo. Los Servlets quedan residentes en

memoria cuando la petición termina

Un servlet es un pequeño código Java que el servidor Web carga para

manejar peticiones del cliente
Estas clases java utilizan el API Servlet
Se cargan y ejecutan dentro de un servicio de red (ej. un Servidor Web)
Implementan determinados interfaces que le permiten:

Recibir una petición HTTP
Generar una respuesta

Servlets son a Servidores como Applets son a Navegadores

Con la diferencia de que los Servlets no suelen usar GUI

[email protected]

2

Servlets
Un poco de historia
JavaSoft lanza el Java Web Server

A mediados de 1997, conocido como Jeeves
Dos objetivos

Implementación de un Servidor de Internet basado en Java
Introducir los Servlets

Se provee el Java Servlet Development Kit (JSDK)

Permite ejecutar servlets en los servidores HTTP más extendidos

Apache, Netscape Enterprise Server, Microsoft IIS.
Ahora forma parte de la especificación J2EE

J2EE 1.3 (principios de 2002) incluye servlet 2.3
J2EE 1.4 (mediados de 2004) incluye servlet 2.4

[email protected]

3

Servlets
Documentación e implementaciones
Documentación



http://java.sun.com/products/servlet/docs.html
http://java.sun.com/products/servlet/2.3/javadoc/index.html
J2EE SDK
Implementación de J2EE provisto por SUN
Incluye el Sun Java System Application Server Platform



últimas versiones basadas en Apache Tomcat

Apache Jakarta Tomcat

versión 4: implementación software libre de servlet 2.3
versión 5: implementación software libre de servlet 2.4

[email protected]

4

Utilidad
¿Para qué sirve un servlet?
Extiende funcionalidad del servidor
Sus usos

Reemplazar a los “primitivos” CGIs

Ej. Procesamiento de formularios en la parte servidor

Colaboración entre personas

Ej. Conferencias en-línea

Debido a la concurrencia y a la sincronización de peticiones
Reenvío de peticiones a otros servidores y servlets

[email protected]

5

Servlets
¿Cómo funcionan?



Fichero .html
(con <FORM>)

<URL>



navegador



GET ó POST
Petición

Programa Servlet

Respuesta



visualizar

1.

2.

3.

4.

Se parte de un Fichero.html que
tenga un formulario (<FORM>)
accesible a través de Internet



El <FORM> deberá especificar las
diversas formas de paso de
parámetros

El cliente accederá al fichero html
a través de un Navegador,
rellenará el formulario y dará a la
tecla de aceptar (Submit).
Empaquetando la petición.
La petición de cliente es atendida
por un Programa Servlet
(escrito en Java) quien da la debida
respuesta tras procesarse la
petición.
El cliente Visualizará la
respuesta

Servidor

Cliente

[email protected]

6

Servlets
Ciclo de vida de un servlet

1.

Instanciación e inicialización del servlet. Si aún no existe ninguna
instancia del servlet (es la primera llamada), el contenedor web:
Primero carga la clase del servlet,
luego crea una instancia y la inicializa invocando su método init

2. Entonces, el servidor puede servir continuamente peticiones. Para

cada llamada:
El contenedor crea un nuevo thread (hilo)
Se invoca al método service de dicho thread.
Los servlets residen típicamente en servidores multithread pero el

programador es el responsable de sincronizar el acceso a los recursos
compartidos.

También se puede restringir el acceso a un único thread

3. El método service determina tipo de petición que ha llegado y llama al

método correspondiente doGet, doPost, etc.

4. Un servlet se desactiva cuando recibe una llamada al método

destroy o cuando su servidor se muere

[email protected]

7

Escenario básico

Navegador Web Servidor Web

new

HTTPServlet

HTTP Request

init

service

HTTPServletRequest

HTTPServletResponse

getParameter

setContentType
getOutputStream

println
close

ServletOutputStream

HTTP response

return

Cliente

[email protected]

Servidor

8

Aplicación. ¿Qué necesito?
Para desplegar servlet creado por otro

1. Crear página web (o mecanismo

2.

alternativo) que realice petición al servlet
Instalar motor de servlets que proporcione:
1. Contenedor donde instalar el servlet
2. Soporte en tiempo de ejecución (mecanismos

de arranque y parada del servidor, logs, etc.)

[email protected]

9

¿Cómo referenciar un Servlet
desde una página web?
Usando etiquetas HTML

Usando la etiqueta A:

<a href="direccion_del_servlet">Texto</a>

Usando la etiqueta IMG:

<img src=" direccion_del_servlet ">

Otras (javascript, css, etc.)

Usando un formulario (forma + habitual):

<form action=" direccion_del_servlet " > <!--

Elementos del formulario --> </form>

[email protected]

10

Despliegue de un servlet
Instalación y conf. de un motor de Servlets
Instalación (ejemplo Tomcat)
Configuración

Dar valor variables de entorno

CATALINA_HOME (dir de instalación de Tomcat)
JAVA_HOME (dir de instalación del JDK)

Añadir al path (variables anteriores/bin)
Añadir al classpath

${CATALINA_HOME}/common/lib/servlet.jar
Ubicación de las clases de nuestra aplicación

[email protected]

11

Despliegue de un servlet
Contenedor: ¿Dónde coloco los servlets?

$CATALINA_HOME

webapps

MiCarpetaRaiz
WEB-INF
classes
MiServlet_1.class
MiSservlet_2.class

.
.
.

lib
Fichero1.jar
Fichero2.jar

web.xml

Fichero.html

.
.
.

.
.
.

web.xml
(...)
<servlet>

</servlet>
(...)

<servlet-name>NombreDelServlet</servlet-name>
<description>

Servlet que devuelve un documento XHTML con
el mensaje "¡Hola Mundo!".

</description>
<servlet-class>MiServlet_1</servlet-class>

OtrosContenidosEstaticos

Fichero.war

http://localhost:8080/MiCarpetaRaíz/servlet/MiServlet_1

[email protected]

12

Despliegue de un servlet
Soporte en tiempo de ejecución
Motor de servlets (Apache-Tomcat)

Arranque:
Parada:

startup.sh
shutdown.sh

Funcionalidad

Soporte para servicios de red (evita al programador

preocuparse de detalles de comunicación entre el
contenedor y el servidor web)

Inicializa, invoca y gestiona ciclo de vida del servlet
Proporciona una implementación del API de servlets

de java

[email protected]

13

Aplicación ¿Qué necesito?
Para crear mi propio servlet
JDK (Entorno para compilación, ejecución

y depuración)

Java Servlet API. APIs específicas para el

desarrollo de servlets

Entorno de pruebas (consultar requisitos

de despliegue)

[email protected]

14

Aplicación. Desarrollo
Tareas de un servlet
Leer datos enviados por el usuario.

Procedentes de: formulario HTML, un applet o una aplicación cliente HTTP, etc.

Recuperar información del usuario incluida en petición HTTP

Ej: Nombre de la máquina cliente, tipo de navegador,cookies, etc.

Generar resultados

Para ello puede necesitar acceder a BD, o llamar otros programas locales o remotos

Formatear los resultados en un documento

Típicamente una página web

Poner parámetros de respuesta HTTP

Content-type, cookies, etc.

Devolver el documento al cliente

Documento HTML, zip, gif, etc.

1.

2.

3.

4.

5.

6.

[email protected]

15

Aplicación. Desarrollo
Esqueleto básico
Todo Servlet tiene que extender la clase HttpServlet y sobrescribir el
método doGet ó doPost, dependiendo de si los datos se envían con
GET o con POST

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

request,

response)

HttpServletResponse

public class MiServlet extends HttpServlet {
public void doGet (HttpServletRequest
throws ServletException, IOException {
// Se usa "request" para leer cabeceras HTTP entrantes (e.j. cookies)
// y datos de formularios HTML (e.j. Datos que el usuario proporciona en el “submit”)
// Se usa "response" para especificar la línea de respuesta HTTP y las cabeceras
// (e.j. Especificar el tipo de contenido, poner las cookies).
PrintWriter out = response.getWriter();
// Se usa "out" para enviar el contenido al navegador del cliente
}
}

[email protected]

16

Ejemplo 1 (Sin <FORM>)
El ejemplo más básico

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet (HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello World");
}

}

Recordatorios:
1.

Deje completamente definido en su
servidor http (Apache, MS IIS,...)
dónde se van a dejar sus
servlets (conviene que sea un sitio
estándar para todo el mundo).
Incluya en el CLASSPATH un enlace
a servlet.jar y al sitio donde deje sus
servlets.
Se invocará al Servlet de la forma
http://host/any-path/MiServlet
(siendo MiServlet el nombre de la
clase)

2.

3.

[email protected]

17

Ejemplo 2 (Sin <FORM>)
Una respuesta “text/html”

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MiPrimerHTMLServlet
  • Links de descarga
http://lwp-l.com/pdf18106

Comentarios de: Tecnologías Web: servlets (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad