Вы находитесь на странице: 1из 8

vbalta@parainformaticos.

com

Los Servlets Los Servlets son mdulos que extienden los servidores orientados a peticin-respuesta, como los servidores web compatibles con Java. Por ejemplo, un servlet podra ser responsable de tomar los datos de un formulario de entrada de pedidos en HTML y aplicarle la lgica de negocios utilizada para actualizar la base de datos de pedidos de la compaa.

Los Servlets son para los servidores lo que los applets son para los navegadores. Sin embargo, al contrario que los applets, los servlets no tienen una interface grfica de usuario. Los servelts pueden ser incluidos en muchos servidores diferentes porque el API Servlet, el que se utiliza para escribir Servlets, no asume nada sobre el entorno o protocolo del servidor. Los servlets se estn utilizando ampliamente dentro de servidores HTTP; muchos servidores Web soportan el API Servlet. Otros usos que tiene los Servlets: Permitir la colaboracin entre la gente. Un servlet puede manejar mltiples peticiones concurrentes, y puede sincronizarlas. Esto permite a los servlets soportar sistemas como conferencias on-line Reenviar peticiones. Los Servlets pueden reenviar peticiones a otros servidores y servlets. Con esto los servlets pueden ser utilizados para cargar balances desde varios servidores que reflejan el mismo contenido, y para particionar un nico servicio lgico en varios servidores, de acuerdo con los tipos de tareas o la organizacin compartida. El Interface Servlet La abstraccin central en el API Servlet es el interfase Servlet. Todos los servlets implementan este interface, bien directamente o, ms comnmente, extendiendo una clase que lo implemente como HttpServlet.

Del libro: Gua de Programacin - Sper Java 2 Plus

vbalta@parainformaticos.com

El interfase Servlet declara, pero no implementa, mtodos que manejan el Servlet y su comunicacin con los clientes. Los escritores de Servlets proporcionan algunos de esos mtodos cuando desarrollan un servlet. Interacin con el Cliente Cuando un servlet acepta una llamada de un cliente, recibe dos objetos: Un ServletRequest, que encapsula la comunicacin desde el cliente al servidor. Un ServletResponse, que encapsula la comunicacin de vuelta desde el servlet hacia el cliente. ServletRequest y ServletResponse son interfaces definidos en el paquete javax.servlet. El Interface ServletRequest El Interface ServletRequest permite al servlet acceder a: Informacin como los nombres de los parmetros pasados por el cliente, el protocolo (esquema) que est siendo utilizado por el cliente, y los nombres del host remote que ha realizado la peticin y la del server que la ha recibido. El stream de entrada, ServletInputStream. Los Servlets utilizan este stream para obtener los datos desde los clientes que utilizan protocolos como los mtodos POST y GET del HTTP. Los interfaces que extienden el interface ServletRequest permiten al servlet recibir ms datos especficos del protocolo. Por ejemplo, el interface HttpServletRequest contiene mtodos para acceder a informacin de cabecera especfica HTTP. El Interface ServletResponse El Interfase ServletResponse le da al servlet los mtodos para responder al cliente. Permite al servlet seleccionar la longitud del contenido y el tipo MIME de la respuesta. Proporciona un stream de salida, ServletOutputStream, y un Writer a travs del cual el servlet puede responder datos.

Las interfaces que extienden el interface ServletResponse le dan a los servlets ms capacidades especficas del protocolo. Por ejemplo, el interface HttpServletResponse

Del libro: Gua de Programacin - Sper Java 2 Plus

vbalta@parainformaticos.com

contiene mtodos que permiten al servlet manipular informacin de cabecera especfica HTTP. Capacidades Adicionales de los Servlets HTTP Las clases e interfaces descritos anteriormente construyen un servlet bsico. Los servlets HTTP tienen algunos objetos adicionales que proporcionan capacidades de seguimiento de sesin. Los servlets HTTP tambin tienen objetos que proporcionan cookies. El API cookie se utiliza para guardar datos dentro del cliente y recuperar esos datos. Ejecutando un Servlet Los servlets van en carpetas (paquetes) distribuidos dentro de la carpeta classes del proyecto Web. Por ejemplo en la siguiente figura vemos que en la carpeta classes estn distribuidos los servlets (ServletExcel.class y ServletHola.class) en el paquete misServlets (por supuesto el paquete puede ser otro, pero siempre dentro de la carpeta classes):

En el siguiente captulo de este libro detallaremos mucho ms el proceso. Por ahora vamos a ejecutar dos simples servlets, basndonos en un proyecto Web de nombre saturno, cuya estructura se puede apreciar en figura anterior. Vamos a desarrollar 2 servlets ServletHola y ServletExcel por lo tanto, debemos tener un archivo web.xml donde se definan los alias y URLs de estos servlets. Su cdigo sera el siguiente:
<?xml version="1.0"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <!-- ========================================== --> <!-- <servlet> define el alias de un servlet --> <!-- ========================================== --> <servlet> <servlet-name>Hola</servlet-name> <servlet-class>misServlets.ServletHola</servlet-class> </servlet> <servlet> <servlet-name>Excel</servlet-name> <servlet-class>misServlets.ServletExcel</servlet-class> </servlet>

Del libro: Gua de Programacin - Sper Java 2 Plus

vbalta@parainformaticos.com

<!-- ========================================== --> <!-- <servlet-mapping> define URL del servlet --> <!-- ========================================== --> <servlet-mapping> <servlet-name>Hola</servlet-name> <url-pattern>/Hola</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Excel</servlet-name> <url-pattern>/Excel</url-pattern> </servlet-mapping>

<!-- ========================================== --> <!-- Archivos a buscar al iniciar el proyecto --> <!-- ========================================== --> <welcome-file-list> <welcome-file> index.html </welcome-file> </welcome-file-list> </web-app>

Segn el archivo web.xml todo inicia por el archivo index.html, que tiene el siguiente cdigo:
<html> <head> <title>Para Inform&aacutecos</title> </head> <BODY bgcolor="#eeeeff" text="#000066"> <center> <h2>Ejecutar Servlets</h2> <br> <a href="Hola">servlet Hola</a> <br> <a href="Excel">servlet Excel</a> </BODY> </html>

Cuando se ejecute index.html (mediante http://localhost:8080/saturno/ en el browser) tendr la siguiente presentacin:

Del libro: Gua de Programacin - Sper Java 2 Plus

vbalta@parainformaticos.com

Ahora, conviene desarrollar los servlet, pero previamente hay que saber que para compilar un servlet en el JCreator, este debe ser configurarlo para poder tener acceso al paquete servlet-api.jar del Tomcat 5.5. El paquete servlet-api.jar se encuentra en la carpeta lib de la carpeta common de la carpeta donde instalo el Jakarta.

Entonces entre al men Configure/Options del JCreator y luego escoja JDK Profiles, enfoque su versin de Java que tiene instalado y clic en el botn Edit (Ver figura):

Del libro: Gua de Programacin - Sper Java 2 Plus

vbalta@parainformaticos.com

Entonces en el dilogo JDK Profiles (ver figura siguiente) adicionar el paquete servletapi.jar que est en la ruta: C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5\common\lib, para poder compilar el servlet:

Con esta informacin puede compilar el servlet ServletHola que tiene el siguiente cdigo:
package misServlets; import java.io.*; import javax.servlet.*;

Del libro: Gua de Programacin - Sper Java 2 Plus

vbalta@parainformaticos.com
import javax.servlet.http.*; public class ServletHola extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out= response.getWriter(); //--------------------------------------------out.println("<html>"); out.println("<head><title>Hola Mundo</title></head>"); out.println("<body bgcolor='#eeeeff' text='000066'><center>"); for(int i=1; i<=6; ++i) { out.println("<h" + i + ">Hola a Todos!</h" + i + ">"); } out.println("<a href='javascript:window.history.back()'>Volver</a>"); out.println("</body></html>");

} }

La presentacin de este servlet (ServletHola) sera:

Asimismo, el servletExcel crear un documento en Microsoft Excel, el cual debe estar instalado, para poder crear el documento, y tiene por cdigo lo siguiente:
package misServlets;

Del libro: Gua de Programacin - Sper Java 2 Plus

vbalta@parainformaticos.com
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ServletExcel extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/x-msexcel"); PrintWriter out= response.getWriter(); //--------------------------------------------out.println("Nombre\tTelfono"); out.println("Juan\t346-1123"); out.println("Luis\t458-1245"); out.println("Ana\t458-2545"); out.print("\n\n\t"); out.println("=HIPERVINCULO(\"http://localhost:8080/saturno/\";\"Volver\")"); } }

El caracter \n har que el dato pase a la siguiente columna y el character \n a la siguiente fila. Tambin, println imprime y pasa a la siguiente fila del Excel. La presentacin de ServletExcel ser:

Del libro: Gua de Programacin - Sper Java 2 Plus

Вам также может понравиться