Mi Primer Servlet

28
Programacion de Aplicaciones Web Profesor: Ing Msc. Eddy MirandaV. Mi Primer Servlet

description

Mi Primer Servlet para programación de aplicaciones web

Transcript of Mi Primer Servlet

Programacion de Aplicaciones Web

Profesor: Ing Msc. Eddy MirandaV.

Mi Primer Servlet

•  Servlets – Clientes ligeros – Mecanismo de solicitud y respuesta –  redireccion

•  Tomcat – Proyecto de Jakarta –  Implementacion oficial de referencias

sobre los estandares de JSP y servlets

Servlet: Arquitectura •  Contenedor de Servlet (servlet container)

–  Servidor que ejecuta un servlet •  Web servers y servidores de aplicacion

–  Sun ONE Application Server(Glassfish) –  Microsoft’s Internet Information Server (IIS) –  Apache HTTP Server –  BEA’s WebLogic Application Server –  IBM’s WebSphere Application Server –  World Wide Web Consortium’s Jigsaw Web

Server

Plantilla Generica de un Servlet

Plantilla de un Servlet

  Primero,miremos una plantilla de un servlet generico.

  El codigo no hace nada pero todos los servlets tienen la misma Los mas importantes detalles estan de amarillo.

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

public class ServletTemplate extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// Use "request" para leer cabeceras HTTP // (e.g. cookies) y formularios de datos HTML(datos del // usuario // ingresado).

// Use "response“para especificar el estado de la respuestaHTTP // codigo y cabeceras (e.g. tipo de contenido, cookies).

PrintWriter out = response.getWriter(); // Use "out" para enviar contenido al Browser } }

Plantilla de un Servlet

  Import el Servlet API:

import javax.servlet.*; import javax.servlet.http.*;

  Para crear servlets siempre se deben importar estas dos paquetes.

Plantilla de un Servlet   Todos lo servlets deben heredar HTTPServlet.   HTTPServlet representa la clase base para

crear los Servlets dentro del Servlet API.   API completa esta disponible en:

  http://java.sun.com/products/servlet/2.3/javadoc/index.html

  Una vez que se ha extendido el HTTPServlet, se deben sobreescribir uno o ambos:   doGet(): Para capturar HTTP Get Requests   doPost():Para capturar HTTP Post Requests

doGet y doPost

  El doGet() y doPost() metodos cada uno toma dos parametro:   HTTPServletRequest: encapsula toda la

informacion relativa a la solicitud del browser .   Form data, nombre del cliente host , cabeceras del HTTP

request .   HTTPServletResponse: encapsula toda la

informacion relativa a la respuesta del servlet .   HTTP estado de retorno , cookies de salida, HTML

respuesta.

  Si quiere que el un unico servlet maneje GET y POST, se puede hacer que doGet llame doPost o viceversa.

Obteniendo un OutputStream

  El objeto HTTPResponse tiene un metodo getWriter() .

  Este metodo retorna un   object java.io.PrintWriter para mandar

los datos al Web Browser.

PrintWriter out = response.getWriter();

Hello World!

Hello World!

  Estamos listos para ver nuestro servlet.

  Este servlet muestra “Hello World!” como simple text, no como HTML.

  Veamos el codigo

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"); } }

Output Stream

  Una vez que se tiene un Objeto OutputStream , se llama al metodo println()para enviar la informacion al browser.

  Cualquier cosa que imprima( print )sera mostrada directamente en el web browser.

  Despues veremos que se pueden imprimir cualquier etiqueta HTML (tags).

Generando HTML

  Para generar HTML, se necesitan dos paso adicionales:  Decirle al browser de que se esta enviando

HTML.  Modifcar las sentencias println() para

retornar codigo HTML validos.

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

public class HelloWWW extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html");

PrintWriter out = response.getWriter(); out.println("<HTML>\n" + "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" + "<BODY>\n" + "<H1>Hello WWW</H1>\n" + "</BODY></HTML>");

} }

HelloWWW.java

Generando HTML

  Para retornar texto HTML,se debe establecer el contenido MIME a text/html:   response.setContentType("text/html");

  Recuerde que se debe establecer el contenido ante que se escriba cualquier contenido.

  Una vez establecido el MIME type, ser puede retornar cualquier tipo de documento HTML .

Servlet del Tiemp

  Otro ejemplo…   Usando el paquete java.util.Date , se

puede obtener el tiempo y fecha actual.

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

public class TimeServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); Date now = new Date(); PrintWriter out = response.getWriter(); out.println("<HTML>\n" + "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" + "<BODY>\n" + "<H1>Hello WWW</H1>\n"+ "<H2>Time is now: "+now+"</H2>"+ "</BODY></HTML>"); } }

Instalacion / Compilacion de Servlets

Instalacion basica

  Se recomienda hacer el desarrollo en una computadora local.

  Esto permite total control de los servlets y JSPs.   Los siguentes slides nos dan una idea global de la

instalacion.

Instalacion Local 1)  Descargue install the Java Software

Development Kit (JSDK). 2)  Descargue Apache Tomcat Servlet Engine. 3)  Configure Apache Tomcat. 4)  Determine su ambiente de desarrollo incluido

el classpath . 5)  Pruebe su instalacion . 6)  Establezca un metodo simplificado de

deployment.

Paso 1: Descargar Java SDK   Preferible descargar Java JDK 1.6.0_14

  Este seguro de descargar todo el jdk (no solamente los archivos JRE)

  JRE: Runtime Environment te permitira ejecutar los archivos.class.

  Para ejecutar las aplicaciones se necesita elSDK Software Development Kit (SDK)

  Una vez instalado el SDK, verifique que este funcione.

Step 2: Descargue un Servidor

  Hay diversos posibilidades para un servidor web:

  Apache Tomcat: Open Source Servlet Engine.   Macromedia JRun   Caucho Resin   New Atlanta ServletExec   Jetty

  Recomendado: Apache Tomcat

Paso 3: Configure Tomcat   Detalles importantes:

  Especifique el puerto: 8080 or 80.   Permita que el servlet se recargue: Cuando activado,

Tomcat automaticamente recargara los clas files moficado.

  Habilite el contexto ROOT : el lugar aecuado para colocar tus archivos class de los proyectos.

  Active el invocador de Servlets : hace mas facil instalar nuevos servlets con cambios minimos en la configuracion.

Paso 4: Ambiente de Desarrollo

  Una vez que ha confirmado que su motor de servlet esta corriendo es necesario poner a punto su ambiente de desarrollo.

  Modifique el CLASSPATH:   Se debe modifivar el CLASSPATH para

incluir el servlet.jar.

Paso 5: Pruebe su instalacion

 Creando un servlet que no usa paquetes a servlet that does not use packages.

 Creando servlet que usa paquetes.  Creando servlet que usa paquetes y un clase

de utilidades separada.

Paso 6: Simplificar el Desarrollo

  .   Recomendable usar un Java IDE aunque no es

obligatorio.   IDEs mas comunes NetBeans ,JBuilder,

Eclipse,IDEA.   Alternativamente use un editor como TextPad o

JCreator.