You are on page 1of 58

INSTITUTO TECNOLGICO DE TUXTLA GUTIRREZ Servlets

M.C. Jos Alberto Morales Mancilla amancilla58@hotmail.com

Introduccin a los Servlets


Un Servlet es un programa que se ejecuta por el lado del servidor en una conexin Web. As como los applets dinmicamente extienden la funcionalidad de un navegador Web, los servlets dinmicamente extienden la funcionalidad de un servidor Web. El uso ms comn de los servlets es generar pginas web de forma dinmica a partir de los parmetros de la peticin que envie el navegador Web.

Servlets de Java

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 compaia.

Introduccin a los Servlets


Los Servlets se ejecutan en el espacio de direcciones del servidor Web. 1. No es necesario crear un proceso separado para gestionar cada peticin del cliente. 2. Los servlets son independientes de la plataforma debido a que estn escritos en Java. 3. El administrador de seguridad de Java en el servidor impone un conjunto de restricciones para proteger los recursos del servidor. 4. Toda la funcionalidad de las bibliotecas de Java estn disponibles para los servlets. Estos pueden comunicarse con applets, bases de datos y otros programas a travs de sockets y el mecanismo de Java RMI.

Ciclo de vida de un Servlet


Tres mtodos son fundamentales en el ciclo de vida de un servlet, los cuales son: 1. init() 2. service() 3. destroy()
Los mtodos son llamados de las siguiente forma: 1. El usuario solicita una peticin a un servidor Web por medio de una URL en un navegador Web. 2. La peticin HTTP es recibida por el servidor Web. El servidor enva la peticin a un servidor especfico. El servlet es dinmicamente ejecutado en el espacio de direcciones del servidor. 3. El servidor invoca al mtodo init() del servlet. Este mtodo es invocado solo cuando el servlet es cargado en memoria por primera vez. 4. El servidor invoca al mtodo service del servlet. Este mtodo se llama para procesar la peticin HTTP. El servlet puede leer los datos que se le envan en la peticin HTTP, tambin puede elaborar una respuesta HTTP para el cliente.

Ciclo de vida de un Servlet


Finalmente el servidor puede decidir quitar de su memoria al servlet. El servidor llama al mtodo destroy() para liberar los recursos utilizados por el servlet. La memoria asignada al servlet y sus objetos son recolectados por el recolector de basura de Java.

Servidor Tomcat
Para crear servlets se necesita tener acceso a un ambiente de desarrollo de servlets. Tomcat es un producto de cdigo abierto sustentado por el grupo Jakarta Project de Apache Software Foundation. Tomcat contiene las libreras o bibliotecas de clases, documentacin y ambiente de ejecucin que se necesita para crear y probar los servlets. Tomcat puede obtenerse de la direccin Web jakarta.apache.org.

Javax.servlet.http
El paquete javax.servlet.http contiene diversas clases e interfaces utilizadas comnmente en el desarrollo de servlets. La funcionalidad de estas clases e interfaces simplifica el proceso de construir servlets que funcionan con peticiones y respuestas bajo el protocolo HTTP.

Interfaz HttpServletRequest
HttpServletResponse HttpSession HttpSessionBindingListener

Descripcin Permite al servlet leer datos de una peticin HTTP.


Permite al servlet escribir datos a una respuesta HTTP. Permite leer y escribir datos en una sesin. Informa a un objeto que ha sido enlazado a una sesin o desenlazado de una sesin.

Clases del paquete javax.servlet.http


Las clases ms importantes proporcionadas por el paquete javax.servlet.http se muestran en la siguiente tabla, de estas clases la ms importante es la clase HttpServlet. Las clases de los servlets heredan de sta clase para procesar las peticiones HTTP.

Clase Cookie HttpServlet HttpSessionEvent

Descripcin Permite almacenar informacin del estado del cliente en la mquina del cliente. Proporciona mtodos para gestionar peticiones y respuestas HTTP. Encapsula un evento de cambio en la sesin.

HttpSessionBindingEvent Indica cuando un listener ha sido ligado o desligado de un valor de sesin o que un atributo de la sesin a cambiado.

Clase HttpServlet
La Clase HttpServlet hereda de GenericServlet. Es usada cuando se desarrollan servlets que reciben y procesan peticiones http.
Mtodo void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException void doPut(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException void service(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException Descripcin Gestiona una peticin GET va HTTP.

Gestiona una peticin POST va HTTP.

Gestiona una peticin PUT va HTTP.

Es llamado por el servidor cuando se recibe una peticin HTTP para el servlet. Los argumentos proporcionan la peticin y la respuesta.

Creando un Servlet
Iniciando con NetBeans 6.9.1, se selecciona File\New Project, se abre el siguiente cuadro de dilogo donde solicita la categora y el tipo de proyecto. Se selecciona Java Web y Web Application y presionamos el botn Next

Creando un Servlet
En el siguiente cuadro de dilogo nos pide el nombre del proyecto, en este caso le pongo ServletHola y presionamos el botn Next

Creando un Servlet
En el siguiente cuadro de dilogo nos pide el servidor de aplicaciones, como en la versin que tengo instalada tengo por default a GlassFish Server ese servidor selecciono pero en otras versiones podra haber sido Tomcat

Creando un Servlet
Finalmente en el siguiente cuadro de dilogo me permite seleccionar el framework a usar, en este caso como es una aplicacin sencilla no seleccionare ninguno.

Creando un Servlet
NetBeans crea el proyecto, una estructura de directorios y dentro de la carpeta Web Pages un archivo index.jsp, que es el punto de partida de la aplicacin. Si bien es de extensin JSP por ahora ser un formulario HTML

Agregando cdigo

Agregando un Servlet al proyecto


En el explorador de proyectos hacer clic derecho en la carpeta Source Packages, seleccionamos New\ Servlet.

Agregando el Servlet
En el siguiente cuadro de dilogo, nos pide el nombre del servlet y el paquete del servlet. En el nombre hay que ingresar el mismo nombre del atributo action del formulario creado, ya que este ser el servlet que recibir los datos enviados por el formulario HTML. Hacemos clic en finish

Creando la clase del Servlet


Automticamente crea una clase con el nombre del servlet dado, que hereda de la clase HttpServlet, se redefinen algunos mtodos doGet, doPost, getServletInfo . Se crea un mtodo processRequest el cul es llamado desde los mtodos doGet y doPost para procesar los formularios.

Modificando el cdigo

Ejecutando el Servlet

Ejecutando el servlet

Ejecutando el servlet

Nuevo proyecto ServletConsulta


Iniciando con NetBeans 6.9.1, se selecciona File\New Project, se abre el siguiente cuadro de dilogo donde solicita el tipo de proyecto y se selecciona Web Application y presionamos el botn Next y ponemos nombre al proyecto

Eligiendo el Server
En el siguiente cuadro de dilogo nos pide el servidor de aplicaciones, como en la versin que tengo instalada tengo por default a GlassFish Server ese servidor selecciono pero en otras versiones podra haber sido Tomcat

Seleccionando el framework
En este caso como es una aplicacin simple no seleccionamos ningn framework

Agregando la librera al proyecto


Una vez que se ha creado la aplicacin de Java, el siguiente paso es agregar una biblioteca, para ello en el men Tools, se selecciona la opcin Libraries

Agregando la librera
Nos aparece el cuadro de dilogo Library Manager, para agregar la nueva biblioteca presionamos el botn New Library

Poniendo nombre a la librera

Al oprimir el botn New Library nos aparece el cuadro de dilogo New Library que aparece en la figura, en el cuadro de edicin de texto donde nos pide Library Name le pongo MySQL es importante no dejar espacios y en la opcin Library Type lo dejo como esta Class Libraries, presionamos el botn OK

Agregando la librera
Como se observa en la parte izquierda del cuadro de dilogo la biblioteca se ha agregado, ahora se van agregar algunos detalles a la biblioteca. Hay que fijarse que la nueva biblioteca creada este seleccionada como se observa en la parte izquierda del cuadro de dilogo.

Buscando el driver
Seleccionando la pestaa Classpath y dando clic en el botn Add JAR/Folder se abre un cuadro de dilogo llamado Browse JAR/Folder que permite seleccionar el conector que ya hemos descargado llamado mysql5.1.11.jar que nos permitir conectarnos

Agregando el driver
Una vez encontrado el connector presionamos el botn Add JAR Folder

Conector agregado al folder


En la parte Library Classpath aparece la ruta y el archivo que se acaba de agregar, damos clic en el botn OK del cuadro de dilogo Library Manager

Agregando el paquete a la librera


En la parte del workspace del proyecto vamos a seleccionar el folder Librares para agregar la librera

Agregando el paquete
Dentro del proyecto en el explorador del proyecto seleccionamos el folder Libraries. Dar clic derecho sobre la carpeta para mostrar el men contextual o seleccionar la opcin Add Library o seleccionar de la lista la biblioteca recin creada con el nombre MySQL, debe aparecer como una nueva entrada dentro del nodo Libraries

Librera agregada
Nos aparece el siguiente cuadro de dilogo llamado Add Library, seleccionamos la biblioteca recin creada llamada MySQL, y al agregarla debe aparecer como una nueva entrada en la carpeta Libraries y listo.

Librera agregada
Como se observa la nueva biblioteca se ha agregado al proyecto aparece como una nueva entrada en la carpeta Libraries del proyecto. Una vez instalado MySQL, descargado el driver para Java de MySQL el siguiente paso es hacer el programa en Java que me permita conectarme a la base de datos de MySQL y consultar la tabla que se ha creado.

Conectndose a la Base de Datos


Para instalar en NetBeans el conector a la base de datos en este caso MySQL se hace lo siguiente: 1. En Services expanda los nodos DataBases y Drivers para ver los conectores disponibles y las conexiones a las bases de datos disponibles como se observa en la figura.

Conectndose a la Base de Datos


Selecciona la opcin Connect Using, del men emergente. Aparecer un cuadro de dilogo para establecer una conexin nueva, como se muestra en la figura. Establezca el URL de la base de datos, Database URL:, en el formato: jdbc:mysql://servidor:puerto/baseDatos

Estableciendo la conexin

Estableciendo la conexin
En la ventana Services, aparecer un nuevo nodo con la conexin a la base de datos, como se muestra en la figura.

Creando el formulario
En la carpeta Web Services abrimos el archivo index.jsp

Creando el Servlet
En la carpeta Source package damos clic derecho y seleccionamos la opcin New/Servlet

Creando el ServletConsulta

Agregando la clase ServletConsulta

Agregando el paquete java.sql

Estableciendo la conexin

Ejecutando la sentencia sql

Obteniendo los resultados

Ejecutando la consulta

Resultado del ServletConsulta

Agregando el formulario para insertar

Creando el Servlet Inserta

Servlet Inserta

Servlet Inserta

Servlet Inserta

You might also like