jsps - tec · 6 jsps ing . pablo díaz, mc 11 etiquetas de scripting ˜ comentarios ˜...

24
1 JSPs Ing. Pablo Díaz, MC 1 JSPs JSPs JSPs Java Server Pages JSPs Ing. Pablo Díaz, MC 2 JSPs JSPs Páginas de Web con contenido DINÁMICO! Separa el contenido (generado por programadores) y la presentación (producida por diseñadores)

Upload: others

Post on 25-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

1

JSPs Ing. Pablo Díaz, MC 1

JSPsJSPsJSPs

Java Server Pages

JSPs Ing. Pablo Díaz, MC 2

JSPsJSPsPáginas de Web con contenido DINÁMICO!

Separa el contenido (generado por programadores)

y la presentación (producida por diseñadores)

Page 2: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

2

JSPs Ing. Pablo Díaz, MC 3

Desarrollo en WebDesarrollo en Web

HTML

Java

ServletsCGIs

GIF

JavaScript

DH

TML CSS

Diseño GráficoJPEG

ETC.....

ETC.....

ETC.....

ETC.....

Base de Datos

JSPs Ing. Pablo Díaz, MC 4

ServletsServlets

� Programa en Java produce una página enHTML

Java HtmlPáginade Web

Page 3: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

3

JSPs Ing. Pablo Díaz, MC 5

JSPsJSPs

� Página en Html con “scripts” de Java

Html JavaPáginade Web

JSPs Ing. Pablo Díaz, MC 6

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

public class Fecha extends HttpServlet {

public void doGet (HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException{

ServletOutputStream out = res.getOutputStream();res.setContentType("text/html");out.println("<HTML>");out.println("<HEAD><TITLE> Servlet de Fecha </TITLE></HEAD>");out.println("<BODY>");out.println("<h1> La fecha es: "+ new Date().toString() +"</h1>");out.println("</BODY>");out.println("</HTML>");out.close();

}}

Page 4: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

4

JSPs Ing. Pablo Díaz, MC 7

<HTML><%@ page language = "java"

import = "java.util.*"%> <HEAD><TITLE> JSP de Fecha </TITLE></HEAD><BODY><H1> La fecha es: <%= new Date().toString() %> </H1></BODY></HTML>

JSPs Ing. Pablo Díaz, MC 8

JSPsJSPs

PROGRAMADORA

DISEÑADOR

Java/Html

Page 5: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

5

JSPs Ing. Pablo Díaz, MC 9

Páginas de WebPáginas de Web

� HTML(Estáticas)

� CGI (Perl, C)� Php� Servlets (java)� ASPs (vbscript)� JSPs (Java)

JSPs Ing. Pablo Díaz, MC 10

JSPsJSPs

� Código de Java embebido en páginaHTML

� HTML con etiquetas adicionalesespecícificas para JSPs

� Tres tipos de etiquetas– Elementos de código (scripting)– Elementos de acción– Elementos directivos

Page 6: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

6

JSPs Ing. Pablo Díaz, MC 11

Etiquetas de ScriptingEtiquetas de Scripting

� Comentarios– <%-- .... --%>– <!–- .... -->

� Declaraciones– <%! ..... %>

� Expresiones– <%= ..... %>

� Scriptles– <% ..... %>

JSPs Ing. Pablo Díaz, MC 12

ComentariosComentarios

� <!–- comentario [<%= expresión %>] -->

� Genera un comentario que se envía al cliente y sepuede visualizar en el código fuente de HTML

<HTML><%@ page language = "java“ %> <HEAD><TITLE> Jsp1.jsp </TITLE></HEAD><BODY><!-- Este comentario aparecer&aacute; en el fuente de la p&aacute;gina --><H1> P&aacute;gina generada con JSP</H1></BODY></HTML>

Page 7: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

7

JSPs Ing. Pablo Díaz, MC 13

ComentariosComentarios

� <%-- Comentario -->

� Comentario que no se envía al cliente (escondido)� Para documentar la página JSP

<HTML><HEAD><TITLE> Jsp2.jsp </TITLE></HEAD><BODY><!-- Este comentario aparecer&aacute; en el fuente de la p&aacute;gina --><%-- Este comentario no aparecerá en el cliente --%><H1> P&aacute;gina generada con JSP</H1></BODY></HTML>

JSPs Ing. Pablo Díaz, MC 14

DeclaracionesDeclaraciones� <%! Declaraciones %>

� Para declarar variables o métodos válidos en ellenguaje, para ser utilizados dentro de la página

� Debe de contener por lo menos un estatuto dedeclaración válido

� Cada estatuto debe terminar con ;� Se deben declarar las variables y métodos antes de

ser usados en la página� Se pueden usar variables y métodos de los paquetes

importados con la directiva Page, sin necesidas dedeclararlos explícitamente

<%! Int i, j; String s; Date fecha = new Date();%>

Page 8: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

8

JSPs Ing. Pablo Díaz, MC 15

ExpresionesExpresiones� <%= expresión %>

� Expresión válida en el lenguaje de script (Java)� La expresión se evalúa, se convierte a String y se

inserta en la página, en el lugar donde aparece� No debe de terminar con ;<HTML><%@ page language = "java" import = "java.util.*"%> <%! Date fecha = new Date(); %><HEAD><TITLE> Jsp3.jsp </TITLE></HEAD><BODY><B><FONT COLOR=“blue”> Hoy es <%= fecha.toString() %></FONT></B></BODY></HTML>

JSPs Ing. Pablo Díaz, MC 16

ScriptletsScriptlets

� <% estatutos %>

� Puede contener estatutos, declaración de variables ométodos

� Se pueden usar los objetos implícitos de JSP– request, response, out, . . . . .

� Se ejecutan en el momento de la petición de lapágina, al igual que las expresiones

� Las declaraciones se ejecutan una sola vez, almomento de cargar la página por primera vez . . . . . .

Page 9: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

9

JSPs Ing. Pablo Díaz, MC 17

ScriptletsScriptlets<HTML><%@ page language = "java"

import = "java.util.*"%> <%! int accesos = 0; String tipo;%><HEAD><TITLE> Jsp4.jsp </TITLE></HEAD><BODY><% accesos++; if ((accesos%2) != 0)

tipo = "impar"; else

tipo = "par";%><BR>La p&aacute;gina se ha cargado <%= accesos %><BR>Que quiere decir un n&uacute;mero <%= tipo %> de veces<BR><% out.print("<FONT COLOR=\"red\">"); out.print(new Date().toString()); out.println("</FONT>");%><BR>Fin de la p&aacute;gina</BODY></HTML>

JSPs Ing. Pablo Díaz, MC 18

Declaración de métodosDeclaración de métodos� Los métodos se declaran dentro de una etiqueta de

declaración (<%! ...... %>)� Se pueden usar en toda la página<HTML><%@ page language = "java" %> <%! int accesos = 0; String tipo;

public String tipo(int n){ if ((n%2) != 0)

return "impar"; else

return "par"; }%><HEAD><TITLE> Jsp5.jsp </TITLE></HEAD><BODY><% accesos++; %><BR>La p&aacute;gina se ha cargado <%= accesos %> veces<BR>Que quiere decir un n&uacute;mero <%= tipo(accesos) %> de veces</BODY></HTML>

Page 10: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

10

JSPs Ing. Pablo Díaz, MC 19

La directiva PageLa directiva Page

<%@ page [ language = “java” ] [ extends = “package.clase” ] [ import = “{package.class | package.*},...] [ session = “true|false” ] [ buffer = “none|8kb|sizeKb” ] [ autoFlush = “true|false” ] [ isThreadSafe = “true|false” ] [ info = “text” ] [ errorPage = “relativeURL” ] [ contentType = “mimeType [;charset=charSet]”| “text/html ; charset = ISO-8859-1” ] [ isErrorPage = “true|false” ]%>

JSPs Ing. Pablo Díaz, MC 20

Objetos implícitosObjetos implícitos

� request� response� out� session� application� config� pageContext� page

Page 11: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

11

JSPs Ing. Pablo Díaz, MC 21

requestrequest<HTML><HEAD><TITLE>Jsp6.html</TITLE></HEAD><BODY BGCOLOR="white" TEXT="black" LINK="blue" VLINK="purple"><H1>Formulario</H1><P>Esta forma llamará a una JSP y regreserá el primer dato en minúsculasy el segundo en mayúsculas<BR><FORM ACTION="Jsp6.jsp" METHOD="GET"><BR> Dato1: <INPUT NAME="caja1"><BR> Dato2: <INPUT NAME="caja2"><BR><INPUT TYPE="SUBMIT" VALUE="ENVIA"></FORM></BODY></HTML>

JSPs Ing. Pablo Díaz, MC 22

requestrequest<%@ page language="java" %><HTML><HEAD><TITLE>Jsp6.jsp</TITLE></HEAD><BODY><% String s1 = request.getParameter("caja1"); String s2 = request.getParameter("caja2");%><BR> Dato1: <%= s1.toLowerCase() %><BR> Dato2: <%= s2.toUpperCase() %></BODY></HTML>

Page 12: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

12

JSPs Ing. Pablo Díaz, MC 23

JDBC con JSPsJDBC con JSPs

JSPs Ing. Pablo Díaz, MC 24

JDBC con JSPsJDBC con JSPs<html><head><title>Despliega.jsp</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><%@ page languaje = "java" import = "java.sql.*"

errorPage = "Error.jsp"%> <%! Connection conexion; Statement estatuto;

ResultSet rs;String nombres, apellidos, puesto, correo;int cont;

%><%

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");conexion = DriverManager.getConnection("jdbc:odbc:cursojava");

%><body bgcolor="#000099"><h1 align="center"><font color="#FFFF00">Lista de Alumnos</font></h1>

Page 13: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

13

JSPs Ing. Pablo Díaz, MC 25

<table width="100%" border="1"> <tr> <th width="5%"><font color="#00FF00"><b></b></font></th> <th width="49%"><font color="#00FF00"><b>Nombre</b></font></th> <th width="17%"><font color="#00FF00"><b>Puesto</b></font></th> <th width="29%"><font color="#00FF00"><b>Correo</b></font></th> </tr><% estatuto = conexion.createStatement(); rs = estatuto.executeQuery("SELECT * FROM alumnos ORDER by apellidos"); cont = 0; while(rs.next()){ cont++; nombres = rs.getString("nombres"); apellidos = rs.getString("apellidos"); puesto = rs.getString("puesto"); correo = rs.getString("correo");%><tr> <td width="5%"><b><font color="#FFFFFF"><%= cont %></font></b></td> <td width="49%"><b><font color="#FFFFFF"><%= nombres +" "+ apellidos %>

</font></b></td> <td width="17%"><b><font color="#FFFFFF"><%= puesto %></font></b></td> <td width="29%"><b><font color="#FFFFFF"> <A HREF=mailto:<%= correo %> >

<font color="#FF0033"><%= correo %></font></A></font></b></td></tr><% } rs.close(); estatuto.close(); conexion.close();%></table>

JSPs Ing. Pablo Díaz, MC 26

<table width="100%" border="1"> <tr> <th width="5%"><font color="#00FF00"><b></b></font></th> <th width="49%"><font color="#00FF00"><b>Nombre</b></font></th> <th width="17%"><font color="#00FF00"><b>Puesto</b></font></th> <th width="29%"><font color="#00FF00"><b>Correo</b></font></th> </tr><% estatuto = conexion.createStatement(); rs = estatuto.executeQuery("SELECT * FROM alumnos ORDER by apellidos"); cont = 0; while(rs.next()){ cont++; nombres = rs.getString("nombres"); apellidos = rs.getString("apellidos"); puesto = rs.getString("puesto"); correo = rs.getString("correo");%> <tr> <td width="5%"><b><font color="#FFFFFF"><%= cont %></font></b></td> <td width="49%"><b><font color="#FFFFFF"><%= nombres +" "+ apellidos %>

</font></b></td> <td width="17%"><b><font color="#FFFFFF"><%= puesto %></font></b></td> <td width="29%"><b><font color="#FFFFFF"> <A HREF=mailto:<%= correo %>>

<font color="#FF0033"><%= correo %></font></A></font></b></td> </tr><% } rs.close(); estatuto.close(); conexion.close();%></table>

Page 14: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

14

JSPs Ing. Pablo Díaz, MC 27

Una JSP es un Servlet!Una JSP es un Servlet!

GET Archivo.jsp

Página HTML

JSPs Ing. Pablo Díaz, MC 28

Una JSP es un Servlet!Una JSP es un Servlet!

� Verificar fecha en archivo– Generar código java– Compilar y generar .class

� Ejecutar y generar HTML

Archivo.jsp

Archivo.javaArchivo.classPáginaH T M L

Page 15: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

15

JSPs Ing. Pablo Díaz, MC 29

jspInit() y jspDestroy()jspInit() y jspDestroy()

<%! Connection conexion; Statement estatuto; ResultSet rs; String nombres, apellidos, puesto, correo; int cont;

public void jspInit(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conexion = DriverManager.getConnection("jdbc:odbc:cursojava"); }catch(ClassNotFoundException e1){ System.err.println("Error en la clase"); }catch(SQLException e2){ System.err.println("Error en SQL"); } }

public void jspDestroy(){ try{ conexion.close(); }catch(SQLException e2){} }%>

JSPs Ing. Pablo Díaz, MC 30

RendimientoRendimiento

� Impacto inicial– Generación del .class

� Servlet en memoria� Código generado

– Puede ser más eficiente que el producidopor el programador

– out.print à out.write

� Producción!!!!!!!!!!– Más rápida y adecuada

Page 16: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

16

JSPs Ing. Pablo Díaz, MC 31

JavaBeansJavaBeans

� Son componentes� Clases que eventualmente se

convertirán en objetos� Siguen ciertas reglas un poco más

estrictas que las clases normales� Nacieron como componentes gráficos

para IDEs

JSPs Ing. Pablo Díaz, MC 32

JavaBeansJavaBeans

� Si se usan bien realmente nos dan laseparación entre diseño y contenidoque tanto se necesita

� No hay que olvidar que en últimainstancia un bean es una clase, de lacual se pueden crear objetos

Page 17: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

17

JSPs Ing. Pablo Díaz, MC 33

JavaBeans, ¿dónde van?JavaBeans, ¿dónde van?� Son clases que deben de estar accesibles

por medio del classpath del contenedor deJSPs

� La manera más fácil es ponerlos en eldirectorio classes, que está en el directorioWEB-INF de la aplicación de Web

� Los ejemplos que están en la literatura usanpaquetes para agrupar los beans, y estosdeben de seguir la estructura jerárquicacorrespondiente

JSPs Ing. Pablo Díaz, MC 34

ReglasReglas

� Debe de tener un constructor sinparámetros

� No debe de tener variables de ejemplarpúblicas

� Las variables (propiedades) del bean sedeben de obtener o modificar por mediode métodos llamados getXxx y setXxx

Page 18: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

18

JSPs Ing. Pablo Díaz, MC 35

EjemploEjemploimport java.util.*;import java.text.*;

public class FechasBean{private Locale local = new Locale("es","MX");

public FechasBean(){}

public String getFechaLarga(){DateFormat f = DateFormat.getDateInstance(DateFormat.FULL, local);return f.format(new Date());

}

public String getHoraCorta(){DateFormat f = DateFormat.getTimeInstance(DateFormat.SHORT,

local);return f.format(new Date());

}

}

JSPs Ing. Pablo Díaz, MC 36

FechaBean.jspFechaBean.jsp<html>

<%@ page language = "java"

%>

<jsp:useBean id="fecha" scope="page" class="FechasBean" />

<body>

<H1> La fecha de es: <jsp:getProperty name="fecha" property="fechaLarga" /> </H1>

<H1> La hora es: <jsp:getProperty name="fecha" property="horaCorta" />

</H1>

</body>

</html>

Page 19: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

19

JSPs Ing. Pablo Díaz, MC 37

Alcance de un beanAlcance de un bean� “Tiempo” de vida dado por scope� page

– Se crea cada vez que se carga la página(Fecha2.jsp)

� session– Dura toda la sesión de peticiones (requests)

(Fecha3.jsp)

� application– Para compartir los beans con otros servlets y jsps

con sesiones diferentes (Fecha4.jsp)

JSPs Ing. Pablo Díaz, MC 38

Un mejor DespliegaUn mejor Despliega<HTML><HEAD>

<TITLE>DespliegaConBean.jsp</title></HEAD><%@ page language = "java"

errorPage = "Error.jsp"%>

<jsp:useBean id="despliega" scope="application" class="DespliegaBean" />

<BODY><H1 align="center">Lista de Alumnos</H1><jsp:getProperty name="despliega" property="participantes" /><H1 align="center">Fin de la lista </H1>

</BODY></HTML>

Page 20: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

20

JSPs Ing. Pablo Díaz, MC 39

DespliegaBean.javaDespliegaBean.java

import java.util.*;import java.sql.*;

public class DespliegaBean{private Connection conexion;private String baseDeDatos ="jdbc:odbc:cursojava";private Statement estatuto; private ResultSet rs;

public DespliegaBean(){try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){}

}

JSPs Ing. Pablo Díaz, MC 40

DespliegaBean.javaDespliegaBean.java

synchronized public String getParticipantes(){Alumno inscrito;StringBuffer buffer = new StringBuffer(500);buffer.append("<CENTER><TABLE BORDER WIDTH=100% CELLPADDING=5>\n");buffer.append("<TR>\n");buffer.append("<TH></TH>\n");buffer.append("<TH>Nombre</TH>\n");buffer.append("<TH>Puesto</TH>\n");buffer.append("<TH>Correo</TH>\n");buffer.append("</TR>\n");

Page 21: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

21

JSPs Ing. Pablo Díaz, MC 41

DespliegaBean.javaDespliegaBean.javatry{

conexion = DriverManager.getConnection(baseDeDatos,"","");estatuto = conexion.createStatement();rs = estatuto.executeQuery("SELECT * FROM alumnos ORDER BY apellidos");int cont = 1;while(rs.next()){

inscrito = new Alumno(rs);buffer.append("<TR>\n");buffer.append("<TD>"+String.valueOf(cont)+"</TD>\n");buffer.append("<TD>"+inscrito.getApellidos()+", "+

nscrito.getNombres()+"</TD>\n");buffer.append("<TD>"+inscrito.getPuesto()+"</TD>\n");buffer.append("<TD><A HREF=mailto:"+inscrito.getCorreo()+

"> "+inscrito.getCorreo()+"</TD>\n");buffer.append("</TR>\n");cont++;

}rs.close();estatuto.close();conexion.close();

}catch(SQLException e){}buffer.append("</TABLE>");

return buffer.toString();

JSPs Ing. Pablo Díaz, MC 42

Manejo de SesionesManejo de Sesiones

� A veces el usuario inhibe las cookies� Tenemos que tener métodos alternos

para manejar estado del cliente� Existen métodos ya probados:

– URLrewriting y campos escondidos

� URLrewriting es tremendamentetedioso

Page 22: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

22

JSPs Ing. Pablo Díaz, MC 43

Manejo de sesionesManejo de sesiones

� Java implementó una clase que manejasesiones

� Inicialmente trata de usar cookies y sino puede lo hace a través deURLrewriting

� Pero es completamente transparente� Ver ejemplos

JSPs Ing. Pablo Díaz, MC 44

Modelos I y IIModelos I y II

� Son modelos para el desarrollo deaplicaciones en Web

� Inicialmente nos vemos tentados autilizar solamente JSPs (por sufacilidad)

� Pero acabamos con código muy difícilde mantener, nuestros JSPs se hacencada vez más complicados

Page 23: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

23

JSPs Ing. Pablo Díaz, MC 45

Modelo 1Modelo 1

JSP

BaseDe

Datos

JavaBean

Petición

Respuesta

JSPs Ing. Pablo Díaz, MC 46

Modelo 2Modelo 2

servlet

BaseDe

Datos

JavaBean

Petición

Respuesta

JSP

Page 24: JSPs - Tec · 6 JSPs Ing . Pablo Díaz, MC 11 Etiquetas de Scripting ˜ Comentarios ˜ Declaraciones ˜ Expresiones ˜ Scriptles JSPs Ing . Pablo Díaz, MC 12 Comentarios ˜

24

JSPs Ing. Pablo Díaz, MC 47

Todos los derechos reservados© Copyright 2004 Pablo Díaz

Prohibida su reproducción parcial ototal sin consentimiento por escritodel autor.