68
Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal [email protected] Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería de Sistemas Universidad de Zaragoza

Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal [email protected] Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Embed Size (px)

Citation preview

Page 1: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Servlets, JSP, JavaBEANS,JDBC

Alberto Gimeno Arnal

[email protected]

Área de Lenguajes y Sistemas InformáticosDpto. de Informática e Ingeniería de Sistemas

Universidad de Zaragoza

Page 2: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal 2

Configuración PC

• JavaServer (TM) Web Development Kit (JSWDK) 1.0.1

• JDK Estándar Enviroment (J2SE) + netBeans

• PATH=D:\Univ\JAVA\jswdk-1.0.1\; D:\Univ\JAVA\jdk1.6.0\

• CLASSPATH=.; D:\Univ\JAVA\jdk1.6.0\lib\tools.jar; D:\Univ\JAVA\jswdk-1.0.1\lib\servlet.jar

Page 3: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal 3

Configuración PC

• Los servlets tienen que guardarse en la ruta:

~~ \WEB-INF\servlets y podemos acceder a ellos a través de http://localhost:8080/examples/servlet/NombreServlet

• Las paginas JSP, jBeans en

~~ \jswdk-1.0.1\webpages

Page 4: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 4

SERVLET: ¿Qué se puede hacer?.

1. LEER información enviada por el usuario: formularios HTML o applets.

2. BUSCAR información en el cliente: navegador, cookies, sesiones.

3. GENERAR resultados, a través de bbdd, JavaBeans.

4. FORMATEAR los resultados de un documento: pagina HTML.

5. ASIGNAR parámetros a la respuesta al cliente: navegador, cookies , sesiones,….

6. ENVIAR información al cliente: formato HTML, ZIP o GIF.

Page 5: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 5

SERVLET: Estructura básica

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

public class ServletHolaFigura extends HttpServlet{

public void doGet (HttpServletRequest request, ServletResponse response) throws IOException, ServletException{ }public void doPost (HttpServletRequest request, ServletResponse response) throws IOException, ServletException{ }

}

Page 6: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 6

SERVLET: javax.servlet

InterfacesRequestDispacher Define un objeto que recibe peticiones desde un cliente y se las

envia a otro (servlet, pagina HTML, jsp)

Servlet Define una serie de métodos que todos los servlets deben implementar

ServletConfig Objeto de configuración usado por el motor de servlets

ServletContext Define una serie de métodos para la comunicación entre servlets.

ServletRequest Objeto que ofrece información de la petición del cliente al servlet.

ServletResponse Objeto que permite al servlet enviar información al cliente.

SingleThreadModel Nos asegura que los servlets tratan una sola petición al mismo tiempo.

Page 7: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 7

SERVLET: javax.servlet

ClasesGenericServlet Define servlet genérico independiente del protocolo

ServletInputStream Canal de lectura de datos procedentes de la petici´ón del cliente.

ServletOutputStream Canal de salida para enviar datos al cliente.

ExcepcionesServletException Excepción general que podrá lanzar cualquier servlets.

UnavailableException Excepción de disponibilidad.

Page 8: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 8

SERVLET: javax.servlet.http

InterfacesHttpServletRequest Hereda del interfaz ServletRequest, especificar

peticiones realizadas a selvlet y recupera el contenido de los formularios HTML.

HttpServletResponse Hereda del interfaz ServletReponse, establece funcionalidad al envio respuestas al cliente

HttpSession Identificación y almacenamiento de información de cada usuario concreto.

HttpSessionBinding Listener

Notificación de creación y destrucción de la sesión.

Page 9: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 9

SERVLET: javax.servlet.http

ClasesCookie Información del cliente enviada por un servlet al

navegador, almacenada por el navegador y que posteriormente el navegador enviara al servidor Web.

HttpServlet Clase abstracta de un servlet.

HttpSessionBinding Event

Evento que se envia para notificar la creación o destrucción de una sesión.

HttpUtils Colección de métodos con utilidades para los servlets.

Page 10: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 10

SERVLET: Estructura básica

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

public class ServletHolaFigura extends HttpServlet{

public void doGet (HttpServletRequest request, ServletResponse response) throws IOException, ServletException{ }public void doPost (HttpServletRequest request, ServletResponse response) throws IOException, ServletException{ }

}

Page 11: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 11

SERVLET: Conceptos básicos

• Importar los paquetes javax.servlet, javax.servlet.http, java.io

• Heredar la clase abstracta HttpServlet.• Implementar los métodos doGet() y doPost()• La clase se debe situar en un directorio

especifico del servidor Web Tomcat.• Invocarlo:

http://servidor/aplicacion/servlet/ClaseServlet.

Page 12: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 12

SERVLET: métodos HttpServlet• void doDelete (HttpServletResquest req,

HttpServletResponse res)• void doGet (HttpServletResquest req,

HttpServletResponse res)• void doOptions (HttpServletResquest req,

HttpServletResponse res)• void doPost (HttpServletResquest req,

HttpServletResponse res)• void doPut (HttpServletResquest req,

HttpServletResponse res)• void doTrace (HttpServletResquest req,

HttpServletResponse res)• void getLastModified (HttpServletResquest req)• void service (HttpServletResquest req,

HttpServletResponse res)

Page 13: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 13

SERVLET: clase GenericServlet

• void destroy()• String getInitParameter(String nombre)• Enumeration getInitParameterNames()• ServletConfig getServletConfig()• ServletContext getServletContext()• String getServletInfo()• String getServletName()• void init()• void long(String mensaje)• void service (HttpServletResquest req,

HttpServletResponse res)

Page 14: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 14

SERVLET: Ejemplo 1 (HolaFigura.class)

public class HolaFigura extends HttpServlet {

public void doGet(HttpServletRequest rq, HttpServletResponse rp) throws IOException, ServletException { rp.setContentType("text/html"); PrintWriter out = rp.getWriter(); out.println("<html><head><title>¡Hola Figura!</title></head>"); out.println("<body>"); out.println("<marquee><h1>¡Hola Figura!</h1></marquee>"); out.println("</body></html>"); } public void doPost(HttpServletRequest rq, HttpServletResponse rp) throws IOException, ServletException {doGet(rq,rp);}}

Page 15: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 15

SERVLET: Ejemplo 2 (FolderRoot.class)

public class FolderRoot extends HttpServlet {

public void doGet(HttpServletRequest rq, HttpServletResponse rp) throws IOException, ServletException { rp.setContentType("text/html"); PrintWriter out = rp.getWriter();

File fichero = new File("D:/"); String[] contenido = fichero.list();

out.println("<html><head><title>Listado de Ficheros</title></head>"); out.println("<body><table border=1 align=‘center’>");

for(int i=0;i<contenido.length;i++) out.println("<tr><td>“ + contenido[i] + "</td></tr>");

out.println(“</table></body></html>"); } public void doPost(HttpServletRequest rq, HttpServletResponse rp) throws IOException, ServletException {doGet(rq,rp);}}

Page 16: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 16

SERVLET: Ejemplo 3 (formulario.html)

<body align="center" width="700"><fieldset><legend><font size=+3>INFORMACION PERSONAL</font></legend>

<form action="http://localhost:8080/examples/servlet/datos" method="POST" enctype="application/x-www-form-urlencoded" >

<fieldset><legend><B>DATOS PERSONALES:</B></legend><label>NOMBRE: </label><input name="nombre" maxlength=20 size=20><label>APELLIDOS: </label><input name="apell" maxlength=32

size=32><br><label>DIRECCIÓN: </label><input name="direccion" maxlength=70

size=70><br><label>C.P.: </label><input name="cp" size=5 maxlength=5><label> LOCALIDAD: </label><input name="localidad" maxlength=17

size=17><label> PROVINCIA: </label><input name="provincia" maxlength=17

size=17></fieldset><input type=reset value="BORRAR"><input type=submit value="VALIDAR">

</form></fieldset></body>

Page 17: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 17

SERVLET: Ejemplo 3 (datos.class)

public class datos extends HttpServlet { public void doGet(HttpServletRequest rq, HttpServletResponse rp) throws IOException, ServletException { rp.setContentType("text/html"); PrintWriter out = rp.getWriter(); out.println("<html><head><title>Datos Personales</title></head>"); out.println("<body><table border=1 align=‘center’"); out.println("<tr><td rowspan=2><h3>DATOS PERSONALES</h3></td></tr>"); out.println("<tr><td>NOMBRE:</td><td>“ + rq.getParameter("nombre"));

out.println("</td></tr><tr><td>APELLIDOS:</td><td>“ + rq.getParameter(“apell"));out.println("</td></tr><tr><td>DIRECCION:</td><td>");

out.println(rq.getParameter("cp") + " " + rq.getParameter("localidad") + " (" + rq.getParameter("provincia") + ")");out.println(“</table></body></html>");

} public void doPost(HttpServletRequest rq, HttpServletResponse rp) throws IOException, ServletException {doGet(rq,rp);}}

Page 18: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 18

SERVLET: Ejemplo 4 (chat)

chat.html

chatEnvia.html chatVer.html

ChatInserta ChatConv

ChatConversacion

Page 19: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 19

SERVLET: Ejemplo 4 (chat.html)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">

<html> <head> <title>CHAT</title> </head> <frameset rows="*,100"> <frame src="chatVer.html“ NORESIZE> <frame src="chatEnvia.html“NORESIZE > </frameset></html>

Page 20: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 20

SERVLET: Ejemplo 4 (chatEnvia.html)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html> <head> <title></title> </head> <body> <form action="http://localhost:8080/examples/servlet/ChatInserta"

method="post"> <input type="text" name="nick" size="10"> <input type="text" name="mensaje" size="70"> <input type="submit" value="ENVIAR"> </form> </body></html>

Page 21: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 21

SERVLET: Ejemplo 4 (chatVer.html)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html> <head><title></title> <meta http-equiv="refresh"

content="5;url=http://localhost:8080/examples/servlet/ChatConv">

</head> <body> </body></html>

Page 22: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 22

SERVLET: Ejemplo 4 (ChatInserta.class)

public class ChatInserta extends HttpServlet { public synchronized void doGet(HttpServletRequest rq HttpServletResponse rp) throws ServletException, IOException { ChatConversacion.InsertaMensaje(rq.getParameter("nick") + ": " +

rq.getParameter("mensaje")); rp.setContentType("text/html"); PrintWriter out = rp.getWriter(); out.println("<html><body><form

action='http://localhost:8080/examples/servlet/ChatInserta' method='post'></head><body>");

out.println("<label>NICK: </label><input type='text' name='nick' size=10>"); out.println("<label>MENSAJE: </label><input type='text' name='mensaje' size=70>"); out.println("<input type='submit' value='ENVIAR'></form></body></html>");}

public synchronized void doPost(HttpServletRequest rq HttpServletResponse rp) throws ServletException, IOException {doGet(rq,rp);}}

Page 23: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 23

SERVLET: Ejemplo 4 (ChatConversacion.class)

public class ChatConversacion {

private static final int NUM_LINEAS=10; private static String[] Conv = new String[NUM_LINEAS]; public synchronized static void InsertaMensaje(String mensaje) { for(int i=NUM_LINEAS-2;i>=0;i--) Conv[i+1]= Conv[i]; Conv[0]=mensaje;}

public synchronized static String[] DameConv() { return Conv; } }

Page 24: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 24

SERVLET: Ejemplo 5 (CreaCookie.class)

public class CreaCookie extends HttpServlet {

public void doGet(HttpServletRequest rq, HttpServletResponse rp) throws ServletException, IOException { Cookie galleta = new Cookie("nick","alb"); galleta.setMaxAge(600); galleta.setComment("Galleta de prueba"); galleta.setSecure(false); rp.addCookie(galleta); rp.setContentType("text/html"); PrintWriter out = rp.getWriter(); out.println("<html><head><title>Galleta

caliente</title></head><body><h2>GALLETA CREADA</H2></body></html>");

}

Page 25: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 25

SERVLET: Ejemplo 5 (VerCookie.class)

public class VerCookie extends HttpServlet { public void doGet(HttpServletRequest rq, HttpServletResponse rp) throws ServletException, IOException { rp.setContentType("text/html"); PrintWriter out = rp.getWriter(); // Mostramos galletas Cookie[] galleta = rq.getCookies(); for (int i = 0; i < galleta.length; i++) { Cookie c = galleta[i]; String name = c.getName(); String value = c.getValue(); out.println(name + " = " + value);} }}

Page 26: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 26

SERVLET: Ejemplo 6 (eSesion.class)

public class eSesion extends HttpServlet { public void doGet(HttpServletRequest rq, HttpServletResponse rp) throws ServletException, IOException { HttpSession sess = rq.getSession(true); sess.setAttribute("nick",new String("alumno")); sess.setAttribute("code",new String("123456")); sess.setAttribute("fecha",new Date()); rp.setContentType("text/html"); PrintWriter out = rp.getWriter();

out.println("<html><head><title>Sesion</title></head><body> <h2>Servlet que crea una sesión</H2></body></html>");

}

Page 27: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 27

SERVLET: Ejemplo 6 (eSesion1.class)

public class eSesion1 extends HttpServlet { public void doGet(HttpServletRequest rq, HttpServletResponse rp) throws ServletException, IOException { HttpSession sess = rq.getSession(true); if(sess.isNew()) rp.sendRedirect("/examples/servlet/eSesion"); rp.setContentType("text/html"); PrintWriter out = rp.getWriter(); out.println("<html><head><title>Sesion</title></head> <body><h2>Visor de la

Sesión </H2>"); out.println("<table border=1 align='center'><tr>

<th>Atributo</th><th>Valor</th></tr>"); Enumeration att = sess.getAttributeNames(); while (att.hasMoreElements()){ String nAtt = (String) att.nextElement(); out.println("<tr><td>" + nAtt + "</td><td>" + sess.getAttribute(nAtt) + "</td></tr>");

} out.println("</body></html>"); }

Page 28: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal servlets 28

SERVLET: Ejemplo 7 (eApp.class)

public class eApp extends HttpServlet { public void doGet(HttpServletRequest rq, HttpServletResponse rp) throws ServletException,

IOException { rp.setContentType("text/html"); PrintWriter out = rp.getWriter(); ServletContext app = getServletContext(); out.println("<html><head><title>Aplicacion</title></head><body>"); synchronized(app){ String nApp = (String)app.getAttribute("nombreAplicacion"); Integer visitas = (Integer)app.getAttribute("accesos"); if(nApp!=null){ out.println("El objeto aplicación ya existe y su valor es: <b>" + nApp + "</b><br/>"); app.setAttribute("accesos",new Integer(visitas.intValue()+1)); }else{ app.setAttribute("nombreAplicacion",new String("AppServlet")); app.setAttribute("accesos",new Integer(1)); out.println("Se ha creado el objeto aplicación"); } } out.println("Nº de visitas: <b>" + app.getAttribute("accesos") + "</b>"); out.println("</body></html>"); }

Page 29: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 29

JSP: Elementos

• Directivas: <%@nombreDirectiva atributo1=“valor1” .......... atributon=“valorn” %>Page info, language, import, extends, contentType, session, buffer, autoFlush, errorPage, isErrorPageInclude file

• Elementos scripting: declaraciones [<%! %>], scriptlets [<% %>], expresiones [<%= %>], comentarios [<%-- --%>],…

• Acciones: <jsp:accion>• Objetos implícitos o integrados (similares a

los servlets)

Page 30: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 30

JSP: Estructura

<%@page contentType="text/html"%><%@page pageEncoding="UTF-8"%><%@page language="Java"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body > <%--Esto es un comentario --%> <div align=center> <b><% out.println("¡HOLA FIGURA!");%> </div> </body></html>

Page 31: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 31

JSP: javax.servlet.jsp

InterfacesHttpJspPage Interfaz de una clase generada por el procesador de páginas

JSP, usando el protocolo http. Método _jspService() (auto)

JspPage Interfaz padre de HttpJspPage. Métodos jspInit(), jspDestroy()

ClasesJspEngineInfo Clase abstracta que ofrece información relativa al contenedor

de páginas JSP.

JspFactory Define, en tiempo de ejecución, una serie de métodos para crear instancias de varios interfaces.

JspWriter Nos permite enviar contenido a la respuesta del cliente

PageContext Ofrece acceso a todos los contenidos asociados con una página JSP..

Page 32: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 32

JSP: javax.servlet.jsp

ExcepcionesJspException Excepción genérica que será lanzada por el contenedor de

páginas JSP.

JspTagException Excepción lanzada por el gestor de etiquetas personalizadas.

Page 33: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 33

Objeto Clase o interfazpage java.lang.Objectconfig javax.servlet.ServletConfigrequest javax.servlet.http.HttpServletRequestresponse javax.servlet.http.HttpResponseout javax.servlet.jsp.JspWriterapplication javax.servlet.ServletContextpageContext javax.servlet.jsp.PageContextexception java.lang.Throwablesession javax.servlet.http.HttpSession

JSP: Objetos integrados

Page 34: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 34

JSP: request

<%@page import="java.util.*"%><%@page language="Java"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ORIGEN</title> </head> <body >

<div align=center> <b><% request.setAttribute("fecha",new Date()); ResquestDispatcher rd = application.getRequestDispatcher

("http://localhost:8084/jspTomcat/RequestDestino.jsp"); rd.forward(request,response); %> </div> </body></html>

Page 35: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 35

JSP: request

<%@page import="java.util.*"%><%@page language="Java"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-

8"> <title>DESTINO</title> </head> <body > <b><%Date fecha = (Date)request.getAttribute("fecha");

out.println("<h3 style='font-family:Comic Sans MS text-align:center'>Atributo de la peticion" + fecha + "</h3>");%>

</body></html>

Page 36: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 36

JSP: response

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html> <head> <meta http-equiv="Content-Type" content="text/html;

charset=UTF-8"> <title>Redirección con RESPONSE</title> </head> <body> <%response.sendRedirect("/jspTomcat/errorResp.jsp");%> </body></html>

Page 37: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 37

JSP: response

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html> <head> <meta http-equiv="Content-Type" content="text/html;

charset=UTF-8"> <title>Redirección con RESPONSE</title> </head> <body> <%response.sendError(354, "Hemos redirigido la salida a

través del objeto RESPONSE");%> </body></html>

Page 38: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 38

JSP: out buffer

<%@ page buffer="10kb"%>…. <body style="font-family:Comic Sans MS“ align=“center”> <%out.println("<h3> Pagina que muestra información sobre el

bufer</h3>"); out.newLine(); int total=out.getBufferSize(); int disp=out.getRemaining(); int usado=total-disp; out.println(“Estado del bufer: <br>");%> <%=usado%>bytes/<%=total%>bytes=<%=(100.0*usado)/total%>%<br>

AutoFlush=<%=out.isAutoFlush()%> </body></html>

Page 39: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 39

JSP: exception

<%@ page isErrorPage="true" import="java.io.*"%>……<body style="font-family:Comic Sans MS" align="justify"> <h1>Se ha producido una excepción</h1> <b >ERROR:</b><%=exception.toString()%><br> <b >MENSAJE:</b><%=exception.getMessage()%><br> <b >VOLCADO DE PILA:</b> <%StringWriter sSalida = new StringWriter(); PrintWriter salida= new PrintWriter(sSalida); exception.printStackTrace(salida);%><%=salida%></p><br> </body></html>

Page 40: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 40

JSP: exception

<%@ page errorPage="paginaError.jsp"%>

…..

<body>

<%--Creamos un error --%>

<%int i=1/0;%>

</body>

</html>

Page 41: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 41

JSP: pageContext Redirección

….<%pageContext.forward("HolaFigura.jsp");%>

…..

JSP: pageContext Inclusión

….

<%pageContext.include("HolaFigura.jsp");%>

…..

Page 42: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 42

JSP: Acciones

• <jsp:forward page=“…”/>• <jsp:include page=“” flush=“” />• <jsp:plugin type=“” code=“” codebase=“”

att1=“”…>– <jsp:params>…</jsp:params>

• <jsp:param name=“” value=“”/>• <jsp:fallback>• <jsp:useBean id=“” class=“” />• <jsp:setProperty name=“” property=“” />• <jsp:getProperty name=“” property=“” />

Page 43: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JSP 43

JSP: <jsp:forward>

<body style="font-family:Comic Sans MS">

<jsp:forward page="destino.jsp">

<jsp:param name="ciudad" value="CALATAYUD" />

<jsp:param name="provincia" value="ZARAGOZA" />

</jsp:forward>

</body>

Page 44: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JavaBean 44

JavaBean: Fundamentos

• Contenedor: aplicación, entorno o lenguaje. Existen características (atributos o propiedades) y comportamientos (métodos) <jsp:useBean>, <jsp:setProperty>, <jsp:getProperty>

• Propiedad, atributo de un componente JavaBean que tiene como función mantener su estado y controlar el comportamiento del Bean.

• Clase: constructores, propiedades, propiedades indexadas

Page 45: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JavaBean 45

JavaBean: <jsp:useBean>

<body style="font-family:Comic Sans MS">

<jsp:useBean id="fecha" scope="page" class="java.util.Date" />

<%=fecha%>

</body>

Page 46: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JavaBean 46

JavaBean: Ejemplo (mBean.jar)

Definimos la clase que vamos a usar:public class alumnoBean {

/** Declaracion variables */

String nombre; String apellidos;

String direccion; String correo;

int movil;

public alumnoBean() {

/** Inicializamos las variables*/

this.nombre=""; this.apellidos="";

this.direccion=""; this.correo="";

this.movil=0; }

/** Declaramos los constructores*/

public String getnombre(){

return nombre; }

public void setnombre(String nombre) { this.nombre=nombre; }

public String getapellidos(){

return apellidos; }

public void setapellidos(String apell){ this.apellidos=apell; }

…………..

Page 47: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JavaBean 47

JavaBean: Ejemplo (Bean.jsp)

<%@ page import="java.mBean.alumnoBean" %>…..<body style="font-family:Comic Sans MS text-align:justify" > <jsp:useBean id="miBean" scope="page" class="java.mBean.alumnoBean"> <jsp:setProperty name="miBean" property="*" /> <jsp:setProperty name="miBean" property="nombre" value="ALBERTO" /> <jsp:setProperty name="miBean" property="apellidos" value="GIMENO ARNAL" /> <jsp:setProperty name="miBean" property="correo" value="[email protected]" /> <%miBean.setaficion("Cine",0); miBean.setaficion("Musica",1); miBean.setaficion("Viajar",2);

%> </jsp:useBean> Soy <jsp:getProperty name="miBean" property="nombre"/> <jsp:getProperty name="miBean" property="apellidos"/>, para cualquier consulta, duda o ruego

mandame un correo a: <jsp:getProperty name="miBean" property="correo"/> Mis aficiones son: <ul> <%String[] aficion=miBean.getaficion(); for(int i=0;i<3;i++){%><li><%=aficion[i]%></li> <%}%> </ul> </body></html>

Page 48: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 48

JDBC: Bases de datos (java.sql)

• Interfaces: CallableStatement, Blob, Ref Connection, DatabaseMetaData, Driver, PreparedStatement, ResultSet, Clob, ResultSetMetaData, Statement, Array, SQLData, SQLInput, SQLOutput, Struct.

• Clases: Date, DriverManager, Time, DriverPropertyInfo, Timestamp, Types, SQLPermisson.

• Excepciones: DataTruncation, SQLWarning, SQLException, BacthUpdateException.

Page 49: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 49

JDBC: Conexión a bbdd

Connection con= DriverManager.getConnection(url);

Para cargar un driver de forma inmediata bastará incluirlo a través de la clase: Class.forName();

Estructura que se usa cuando se trabaja con bbdd es:

Try{….}

catch (SQLException ex){…..}

catch (Exception ex){…}

Page 50: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 50

JDBC: conex.jsp (Connection)<%@ page import="java.sql.*"%>……………

<%try{ //Registramos el Driver de MySQL

Class.forName("com.mysql.jdbc.Driver"); //Realizamos la conexión al servidor MySQL Connection

conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/criogenia","root","mysql"); //Mensaje de exito

out.println("Conexion realizada con exito a: " + conn.getCatalog()); conn.close(); }catch(SQLException ex){%> <%="Se produjo un error durante la conexión: "+ex%> <% }catch(Exception ex){%> <%="Se produjo una excepción: "+ex%> <%}%>

Page 51: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 51

JDBC: Interfaz de consultas

Statement

PreparedStatement

CallableStatement

Page 52: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 52

JDBC: Consultas de datos

//Creamos el interfaz st en el servidor de datos, y lo asociamos al objeto conexión conn

Statement st = conn.createStatement();

//Cadena de consulta

String sql = "SELECT * FROM " + request.getParameter("tabla").toString();

//Contenedor de datos: ResultSet

ResultSet rs = st.executeQuery(sql);

Page 53: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 53

JDBC: conexión.jsp (consulta)<%@ page import="java.sql.*"%>……………

<%try{…………..

Statement st = conn.createStatement(); String sql = "SELECT * FROM " + request.getParameter("tabla").toString(); ResultSet rs = st.executeQuery(sql); rs.beforeFirst();%> //afterLast(); <table border="1" align="center"> <%while(rs.next()){%> //previous() <tr><td><%=rs.getString(1)%></td><td><%=rs.getString(2)%></td>

<td><%=rs.getString(3)%></td></tr> <%}%> </table>

Page 54: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 54

JDBC: Tipos de ResultSet (createStatement)

TYPE_FORWARD_ONLY: por defecto.TYPE_SCROLL_INSENSITIVE: todo tipo de

movimiento, pero mientras esta abierto no se entera de los cambios.

TYPE_SCROLL_SENSITIVE: todo tipo de movimiento y control sobre los cambios.

CONCUR_READ_ONLY: solo lectura.CONCUR_UPDATABLE: permite

modificaciones.

Page 55: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 55

JDBC: Métodos de ResultSet

• executeQuery() select ResultSet• executeUpdate() insert, delete, update, create table int

• execute() otros true/falseabsolute(), afterLast(), beforeFirst(), first(), last(), moveToCurrentRow(), previous(), relative(), isAfterLast(), isBeforeFirst(), isFirst(), isLast(), getRow()

close()

Page 56: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 56

JDBC: conex2.jsp (modificar)<%try{…………..

Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);

String sql=“select * from "+request.getParameter("tabla").toString(); ResultSet rs = st.executeQuery(sql);// buscamos el registro a modificar, el actual getRow() rs.getRow();//Modificamos todos los campos rs.updateString (2,request.getParameter(“nomb”).toString()); rs.updateInt (3,request.getParameter(“edad”).toInt());

…………. rs.updateRow(); //Deshacer la actualización cancelRowUpdates()

Page 57: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 57

JDBC: conex3.jsp (insertar)<%try{…………..

Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);

String sql=“select * from "+request.getParameter("tabla").toString(); ResultSet rs = st.executeQuery(sql);// nos movemos al registro a insertar, moveToInsertRow() rs.moveToInsertRow();//Insertamos los datos nuevos rs.updateString (2,request.getParameter(“nomb”).toString()); rs.updateInt (3,request.getParameter(“edad”).toInt());

…………. rs.insertRow();

Page 58: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 58

JDBC: conex4.jsp (borrar)<%try{…………..

Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);

String sql=“select * from"+request.getParameter("tabla").toString(); ResultSet rs = st.executeQuery(sql);// nos movemos al registro a borrar, absolute() rs.absolute(request.getParameter(“fila”).toInteger());//borramos rs.deleteRow();

Page 59: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 59

JDBC: conex5.jsp (PreparedStatement)

<%if(request.getParameter(“insertar”)!=null){try{…………..

String sql =“INSERT INTO paciente (nombre, edad, sala) VALUES (?,?,?)”;

//Enviamos a BD la consulta para que la compile PreparedStatement pst = conn.preparedStatement(sql);//Pasamos los parámetros de entradapst.setString(1,request.getParameter(“nomb”));pst.setInt(2,Integer.parseInt(request.getParameter(“edad”)));pst.setInt(3,Integer.parseInt(request.getParameter(“sala”)));//actualizamospst.executeUpdate();//cerramos todo

Page 60: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 60

JDBC: conex6.jsp (CallableStatement)<%if(request.getParameter(“buscar”)!=null){try{…………..

String palm=“{call dameSala(?,?)}”;//Enviamos a BD la consulta para que la compile CallableStatement cst = conn.prepareCall(palm);//Pasamos los parámetros de entrada al procedimiento almacenadocst.setString(1,request.getParameter(“nomb”));//registramos el parámetro de salidacst.registerOutParameter(2,Types.INT);//ejecutamos la sentenciacst.execute();//comprobemos que nos a devueltoIf (cst.getUpdateCount()==1){

out.println(cst.getString(2));Else

out.println(“El paciente no existe”);//cerramos todo

Page 61: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 61

JDBC: DatabaseMetaData

Proporciona información de la bd a la que nos hemos conectado.//conexión

Connection conn = DriverManager.getConnection(bd,user,clave);

//creamos la instancia a la bd

DatabaseMetaData bdmd= conn.getMetaData();

Page 62: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 62

JDBC: ResultSetMetaDataProporciona información sobre las columnas que contiene el ResultSet. …………

//ejecutamos la consultaResultSet rs = st.executeQuery(sql);ResultSetMetaData rsmd=rs.getMetaData();rs.beforeFirst();%><table border="1" align="center"> <tr><th><%=rsmd.getColumnName(1)%></th>….<%while(rs.next()){%><tr><td><%=rs.getString(1)%></td>…..<%}%>

Page 63: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 63

Componentes JavaBeans y JDBC:

Vamos a usar un Bean de sesión, HttpSessionBindingListener, la desconexión se producira cuando se destruya el componente valueUnbound. Para ello creamos una clase (con sus constructores) que nos devuelva el nombre y edad de un determinado paciente dandole un identificador userBean.class

public class userBean implements HttpSessionBindingListener {…………..

public void valueBound(HttpSessionBindingEvent event) {}public void valueUnbound(HttpSessionBindingEvent event) { try{ conn.close(); }catch(Exception ex){ System.out.println("Error al cerrar la conexión: " + ex); }}}

Page 64: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 64

Componentes JavaBeans y JDBC:

public class userBean implements HttpSessionBindingListener { private int codigo, edad; private Statement st; private ResultSet rs; private String nombre; private Connection conn; private String sql="Select nombre,edad from paciente where id_paciente="; /** Creacion instancia userBean */ public userBean() { setCodigo(0); }

Page 65: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 65

Componentes JavaBeans y JDBC:

public void setCodigo(int codigo){ try{ sql = sql + codigo; Class.forName("com.mysql.jdbc.Driver").newInstance(); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/criogenia",

"root","mysql"); st =conn.createStatement(); rs = st.executeQuery(sql); if(rs!=null){

nombre = rs.getString("nombre"); edad= rs.getInt("edad"); codigo=codigo; }

rs.close(); }catch(Exception ex){ System.out.println("Error al establecer la propiedad codigo: " + ex);}}

Page 66: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 66

Componentes JavaBeans y JDBC:

public String getNombre(){

return nombre;

}

public int getEdad(){

return edad;

}

Page 67: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal JDBC 67

Componentes JavaBeans y JDBC:

<%@ page import="com.bean.*" %> <jsp:useBean id="paciente" class="com.bean.userBean" scope="session"></jsp:useBean>…………..

<form action="index.jsp"> Código del Paciente <input type="text" name="codigo" value="" size="3" /> <input type="submit" value="CONSULTA" name="enviar"/></form><%if(request.getParameter("enviar")!=null){%> Los datos del código de paciente <%=request.getParameter("codigo")%>

son : <jsp:setProperty name="paciente" property="*" /> <ul> <li>Nombre: <b><jsp:getProperty name="paciente" property="nombre"

/></b></li> <li>Edad: <b><jsp:getProperty name="paciente" property="edad" /></b></li></ul> <%}%>

Page 68: Servlets, JSP, JavaBEANS,JDBC Alberto Gimeno Arnal alberto.gimeno@gmail.com Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería

Alberto Gimeno Arnal 68

BIBLIOGRAFIA:

• Curso de JAVA Ed.: ANAYA Multimedia O’REILLY

• Bases de datos con JAVA Ed.: Ra-Ma• MySQL 5.0 Reference Manual (

http://dev.mysql.com/doc/refman/5.0/es/index.html)

• Manual oficial de JAVA (http://www.java.com/es/download/manual.jsp)

• http://java.sun.com