PDF de programación - JAVA: Servlets - Diseño de aplicaciones web

Imágen de pdf JAVA: Servlets - Diseño de aplicaciones web

JAVA: Servlets - Diseño de aplicaciones webgráfica de visualizaciones

Publicado el 23 de Octubre del 2019
595 visualizaciones desde el 23 de Octubre del 2019
668,3 KB
42 paginas
Creado hace 12a (22/11/2011)
JAVA: Servlets

Diseño de aplicaciones

web

[email protected]

Servlets

n Programas que se ejecutan en los

servidores.
– Añaden funcionalidad a un servidor web, del

mismo modo que los applets añaden
funcionalidad a los navegadores.

n Similares a los scripts CGI, salvo que

ofrecen una independencia de la
plataforma.

[email protected]

2

Cuándo se suelen utilizar

n La página web se basa en datos que

proporciona el usuario.
– Ejemplo: e-commerce sites.

n Los datos cambian frecuentemente.

– Ejemplo: Partes meteorológicos.

n La página web utiliza información de BDs

u otras fuentes.
– Ejemplo: Aplicaciones comerciales.

[email protected]

3

Applets

cliente

servidor

El usuario pide un applet en java

NAVEGADOR

WEB

Llega un applet en java

Arranca la máquina
Virtual de java y
Se ejecuta el applet

MÁQUINA

VIRTUAL JAVA

[email protected]

4

Servlets

Cliente

Servidor

Base de datos

[email protected]

5

Servlets. Requisitos

n El servidor debe tener una máquina virtual Java.
n El servidor debe soportar la API de los servlets Java.
n Servidores capaces de ejecutar servlets:

– Apache Tomcat
– Java Web Server
– O’Reilly WebSite Professional
– Lotus Domino Go WebServer
– Novel IntraNetWare
– IBM Internet Connection Server
– Otros

[email protected]

6

Instalando un servidor Web

n Jakarta Tomcat

– http://java.sun.com/webservices/
downloads/webservicespack.html

n JSWDK 1.0

– http://java.sun.com/products/servlet/2.1

[email protected]

7

Java Servlet API

n Extensión al JDK estándar

– Extensiones del JDK extensiones son

empaquetados bajo javax

n Paquetes:

– javax.servlet
– javax.servlet.http

• Da soporte al protocolo HTTP y a la generación

de HTML

[email protected]

8

Ejecución de un servlet

n Formas de iniciar la ejecución:

– Introducir la dirección URL del servlet en

un navegador web.

– Llamar al servlet desde una página web.
– Ejecutar un servlet llamándolo desde otro

servlet.

[email protected]

9

Desde un navegador web

n http://nombre_maquina:puerto/ruta_serv

let/nombre_servlet

n Las llamadas a servlets pueden

contener parámetros:
– http://www.datsi.fi.upm.es/~mperez/servlet

s/serv1?num1=3&num2=4

[email protected]

10

Desde una página web

n Un servlet también puede ser llamado
desde el código de una página web, al
igual que se llamaría a cualquier CGI.

n Ejemplo:

– <form action =

“http://www.datsi.fi.upm.es/~mperez/servlet
s/serv2” method=“post”>

[email protected]

11

Desde otro servlet

n Se puede lanzar la ejecución de un

servlet desde otro.

n Pasos:

– Conocer el nombre del servlet que

queremos llamar.

– Proporcionar acceso al objeto “Servlet” del

servlet llamado.

– Llamar al método público del servlet.

[email protected]

12

Desde otro servlet

public class servletCalling extends HttpServlet {
public void doGet (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
...
Servlet servlet_get = (Servlet)
getServletConfig().getServletContext().getServlet(“servl
etCalled”);
String data_get = servlet_get.method1(data);
...
}

}

[email protected]

13

Arquitectura de los servlets

n Biblioteca ‘javax.servlet’

Servlet

HttpServlet

MiServlet

[email protected]

14

Ciclo de vida de un servlet

Servidor

Servlet

Servlet
Servidor

Manejo de
peticiones

Servidor

Servlet

Carga
init()

Cliente
service()

Cliente

Descarga
destroy()

doGet()
doPost()

[email protected]

15

Inicialización de un servlet

n public void init (ServletConfig config)
n Finaliza antes de la invocación de cualquier

método sobre el servlet

n Sólo se invoca una vez, a menos que el servidor

recargue el servlet

n ServletConfig: argumentos de inicialización para

el servlet

n Ej.: abrir ficheros o establecer conexiones a los

servidores

[email protected]

16

Servicio

n public void service (ServletRequest req,

ServletResponse res )

n Lee la petición y produce el mensaje de

respuesta

n Objeto ‘ServletRequest’:

– Comunicación que fluye del cliente al servidor

n Objeto ‘ServletResponse’:

– Encapsula la información enviada desde el servidor

al cliente

[email protected]

17

HTTP Servlets

[email protected]

18

Método HTTP GET

n Ejemplo:

– GET /servlet/MyServlet?nombre=Juan& institucion=FI

HTTP/1.1
Connection: Keep-Alive
User-Agent: Mozilla/4.0 (
compatible; MSIE 4.01; Windows NT)
Host: www.datsi.fi.upm.es
Accept: image/gif, image/x-xbitmap, image/jpeg,
image/pjpeg

n Limitación: Cuántos datos son pasados como parte

del URL

Uso de HTTP POST

[email protected]

19

Método HTTP POST
n Permite al cliente enviar datos al servidor

– Pasar más información que en una petición HTTP GET

n Ejemplo:

– POST /servlet/MyServlet HTTP/1.1
User-Agent: Mozilla/4.0 (
compatible; MSIE 4.01; Windows NT)
Host: www.datsi.fi.upm.es
Accept: image/gif, image/x-xbitmap, image/jpeg,
image/pjpeg, */
Content-type: application/x-www-form-urlencoded
Content-length: 39
nombre=Juan&institucion=FI

[email protected]

20

doGet() y doPost()

n Sobreescribir métodos doGet() y doPost()

– public void doGet (

HttpServletRequest request,

HttpServletResponse response);
– public void doPost (

HttpServletRequest request,

HttpServletResponse response);

[email protected]

21

Destrucción del servlet

n public void destroy()
n Liberar los recursos (cerrar ficheros abiertos o
cerrar conexiones con bases de datos). Puede
ser un método vacío.

n El servidor espera a llamar al método destroy()

hasta que todos los servicios se hayan
completado o haya pasado una cantidad de
tiempo determinada

[email protected]

22

Estructura de un Servlet

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SomeServlet extends HttpServlet {

(HttpServletRequest

// El servidor envía una página
// web al cliente
public void doGet
request,
HttpServletResponse response)
throws ServletException,
IOException
{
// Utilizar request para leer
// datos procedentes del
// cliente (ej: cookies,
// otros datos)

// Utiliza response para
// especificar la respuesta
// (tipo de contenido, establecer
// cookies, ...)
PrintWriter out = response.getWriter();
// Utilizar out para enviar el
// contenido al navegador

}
// Análogamente, sobreescribir
// doPost().
}

[email protected]

23

Ejemplo Servlets: Hola Mundo

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HolaMundoSrvlt extends

HttpServlet {
// El servidor envía una página web al
cliente
public void doGet
(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,
IOException
{
PrintWriter out;
String titulo=“Hola Mundo”;

}
}

// Utiliza response para
// especificar la respuesta
response.setContentType (“text/html”);
out = response.getWriter();
out.println(“<HTML><HEAD><TITLE>”);
out.println(titulo);
out.println(“</TITLE></HEAD><BODY>”);
out.println(“<H1>”+titulo+</H1>”);
out.println(“</BODY></HTML>”);
out.close();

[email protected]

24

Ejemplo Servlets: Hola Mundo

[email protected]

25

Obtención y envío de información

n Obtención de datos

del cliente:
– getParameter()

• getParameterValues()
• getParameterNames()

– getReader
– getInputStream()

n Envío de datos al

cliente:
– getWriter
– getOutputStream

[email protected]

26

Ejemplo: Lectura de parámetros

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ThreeParam extends HttpServlet {

public void doGet( HttpServletRequest
request,
HttpServletResponse response)
throws ServletException,
IOException {
PrintWriter out;
String title="Leyendo 3 parámetros";
response.setContentType
("text/html");
out = response.getWriter();
out.println("<HTML><HEAD><TITLE>");
out.println(title);

}
}

out.println("</TITLE></HEAD><BODY>");
out.println("<H1 ALIGN=CENTER>"+ title
+"</H1>");
out.println("<UL>");
out.println("<LI>param1: "+
request.getParameter("param1"));
out.println("<LI>param2: "+
request.getParameter("param2"));
out.println("<LI>param3: "+
request.getParameter("param3"));
out.println("</UL>");
out.println("</BODY></HTML>");
out.close();

}

public void doPost(HttpServletRequest

request,HttpServletResponse response)
throws ServletException,IOException {
doGet(request,response);

[email protected]

27

Ejemplo: Lectura de parámetros

[email protected]

28

Ejemplo: Lectura de parámetros II

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

public class ShowParameters extends HttpServlet {
public void doGet( HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException
{
PrintWriter out;
String title="Leyendo todos los parámetros";
response.setContentType ("text/html");
out = response.getWriter();
out.println("<HTML><HEAD><TITLE>");
out.println(title);
out.println("</TITLE></HEAD><BODY>");

[email protected]

29

Ejemplo: Lectura de parámetros II

out.println("<H1 ALIGN=CENTER>"+ title
+"</H1>");
out.println("<TABLE BORDER=1 ALIGN=CENTER>");
out.println("<TR><TH>Nombre de
parámetro<TH>Valores de parámetro");
Enumeration nombresDeParam =
request.getParameterNames();
while (nombresDeParam.hasMoreElements()){

String nombreParam = (String)
nombresDeParam.nextElement();
out.println("<TD>");
request.getParameterValues(nombreParam);

out.println("<TR><TD>" + nombreParam);
String[] valoresDeParam=
if (valoresDeParam.length == 1) {



String valorParam =
valoresDeParam[0];
if (valorParam.length()== 0)

out.print("<I>No existe valor</I>");



else

out.print(valorParam);

} else {
out.println("<UL>");
for (int i=0;
i<valoresDeParam.length; i++) {
out.println("<LI>" +
valoresDeParam[i]);
}
out.println("</UL>");
}

}
out.println("</TABLE>");
out.println("</BODY></HTML>");
out.close();
}
public void doPost(HttpServletRequest

request,HttpServletResponse re
  • Links de descarga
http://lwp-l.com/pdf16757

Comentarios de: JAVA: Servlets - Diseño de aplicaciones web (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