Mi Primer Servlet
-
Upload
katherine-carbajal-vega -
Category
Documents
-
view
43 -
download
0
description
Transcript of 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 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!
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 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.