Está en la página 1de 58

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ Servlets

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

Introducción a los Servlets
Un Servlet es un programa que se ejecuta por el lado del servidor en una conexión Web. Así como los applets dinámicamente extienden la funcionalidad de un navegador Web, los servlets dinámicamente extienden la funcionalidad de un servidor Web. El uso más común de los servlets es generar páginas web de forma dinámica a partir de los parámetros de la petición que envie el navegador Web.

Servlets de Java

Los Servlets son módulos que extienden los servidores orientados a petición-respuesta, como los servidores web compatibles con Java. Por ejemplo, un servlet podría ser responsable de tomar los datos de un formulario de entrada de pedidos en HTML y aplicarle la lógica de negocios utilizada para actualizar la base de datos de pedidos de la compañia.

Introducción 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 petición del cliente. 2. Los servlets son independientes de la plataforma debido a que están 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 están disponibles para los servlets. Estos pueden comunicarse con applets, bases de datos y otros programas a través de sockets y el mecanismo de Java RMI.

Ciclo de vida de un Servlet
Tres métodos son fundamentales en el ciclo de vida de un servlet, los cuales son: 1. init() 2. service() 3. destroy()
Los métodos son llamados de las siguiente forma: 1. El usuario solicita una petición a un servidor Web por medio de una URL en un navegador Web. 2. La petición HTTP es recibida por el servidor Web. El servidor envía la petición a un servidor específico. El servlet es dinámicamente ejecutado en el espacio de direcciones del servidor. 3. El servidor invoca al método init() del servlet. Este método es invocado solo cuando el servlet es cargado en memoria por primera vez. 4. El servidor invoca al método service del servlet. Este método se llama para procesar la petición HTTP. El servlet puede leer los datos que se le envían en la petición HTTP, también 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. La memoria asignada al servlet y sus objetos son recolectados por el recolector de basura de Java. El servidor llama al método destroy() para liberar los recursos utilizados por el servlet. .

Servidor Tomcat Para crear servlets se necesita tener acceso a un ambiente de desarrollo de servlets. . Tomcat puede obtenerse de la dirección Web jakarta. Tomcat contiene las librerías o bibliotecas de clases.org. Tomcat es un producto de código abierto sustentado por el grupo Jakarta Project de Apache Software Foundation. documentación y ambiente de ejecución que se necesita para crear y probar los servlets.apache.

servlet.Javax. Informa a un objeto que ha sido enlazado a una sesión o desenlazado de una sesión. Permite al servlet escribir datos a una respuesta HTTP.http El paquete javax. La funcionalidad de estas clases e interfaces simplifica el proceso de construir servlets que funcionan con peticiones y respuestas bajo el protocolo HTTP. .http contiene diversas clases e interfaces utilizadas comúnmente en el desarrollo de servlets. Interfaz HttpServletRequest HttpServletResponse HttpSession HttpSessionBindingListener Descripción Permite al servlet leer datos de una petición HTTP. Permite leer y escribir datos en una sesión.servlet.

http Las clases más importantes proporcionadas por el paquete javax. Proporciona métodos para gestionar peticiones y respuestas HTTP.servlet.servlet. HttpSessionBindingEvent Indica cuando un listener ha sido ligado o desligado de un valor de sesión o que un atributo de la sesión a cambiado. Las clases de los servlets heredan de ésta clase para procesar las peticiones HTTP. de estas clases la más importante es la clase HttpServlet.http se muestran en la siguiente tabla. Clase Cookie HttpServlet HttpSessionEvent Descripción Permite almacenar información del estado del cliente en la máquina del cliente.Clases del paquete javax. Encapsula un evento de cambio en la sesión. .

Clase HttpServlet La Clase HttpServlet hereda de GenericServlet. Gestiona una petición POST vía HTTP. Es llamado por el servidor cuando se recibe una petición HTTP para el servlet. Gestiona una petición PUT vía HTTP. Método void doGet(HttpServletRequest req. Es usada cuando se desarrollan servlets que reciben y procesan peticiones http. HttpServletResponse res) throws IOException. . HttpServletResponse res) throws IOException. Los argumentos proporcionan la petición y la respuesta. ServletException void service(HttpServletRequest req. ServletException void doPut(HttpServletRequest req. HttpServletResponse res) throws IOException. ServletException void doPost(HttpServletRequest req. HttpServletResponse res) throws IOException. ServletException Descripción Gestiona una petición GET vía HTTP.

9. Se selecciona Java Web y Web Application y presionamos el botón Next .1. se selecciona File\New Project.Creando un Servlet Iniciando con NetBeans 6. se abre el siguiente cuadro de diálogo donde solicita la categoría y el tipo de proyecto.

en este caso le pongo ServletHola y presionamos el botón Next .Creando un Servlet En el siguiente cuadro de diálogo nos pide el nombre del proyecto.

Creando un Servlet En el siguiente cuadro de diálogo nos pide el servidor de aplicaciones. como en la versión que tengo instalada tengo por default a GlassFish Server ese servidor selecciono pero en otras versiones podría haber sido Tomcat .

en este caso como es una aplicación sencilla no seleccionare ninguno.Creando un Servlet Finalmente en el siguiente cuadro de diálogo me permite seleccionar el framework a usar. .

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

Agregando código .

. seleccionamos New\ Servlet.Agregando un Servlet al proyecto En el explorador de proyectos hacer clic derecho en la carpeta Source Packages.

nos pide el nombre del servlet y el paquete del servlet. Hacemos clic en finish . 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.Agregando el Servlet En el siguiente cuadro de diálogo.

Se crea un método processRequest el cuál es llamado desde los métodos doGet y doPost para procesar los formularios. . que hereda de la clase HttpServlet. getServletInfo . doPost.Creando la clase del Servlet Automáticamente crea una clase con el nombre del servlet dado. se redefinen algunos métodos doGet.

Modificando el código .

Ejecutando el Servlet .

Ejecutando el servlet .

Ejecutando el servlet .

se selecciona File\New Project. se abre el siguiente cuadro de diálogo donde solicita el tipo de proyecto y se selecciona Web Application y presionamos el botón Next y ponemos nombre al proyecto .9.Nuevo proyecto ServletConsulta Iniciando con NetBeans 6.1.

como en la versión que tengo instalada tengo por default a GlassFish Server ese servidor selecciono pero en otras versiones podría haber sido Tomcat .Eligiendo el Server En el siguiente cuadro de diálogo nos pide el servidor de aplicaciones.

Seleccionando el framework En este caso como es una aplicación simple no seleccionamos ningún framework .

para ello en el menú Tools. se selecciona la opción Libraries . el siguiente paso es agregar una biblioteca.Agregando la librería al proyecto Una vez que se ha creado la aplicación de Java.

para agregar la nueva biblioteca presionamos el botón New Library .Agregando la librería Nos aparece el cuadro de diálogo Library Manager.

en el cuadro de edición de texto donde nos pide Library Name le pongo MySQL es importante no dejar espacios y en la opción Library Type lo dejo como esta Class Libraries. presionamos el botón OK .Poniendo nombre a la librería Al oprimir el botón New Library nos aparece el cuadro de diálogo New Library que aparece en la figura.

Agregando la librería Como se observa en la parte izquierda del cuadro de diálogo la biblioteca se ha agregado. Hay que fijarse que la nueva biblioteca creada este seleccionada como se observa en la parte izquierda del cuadro de diálogo. ahora se van agregar algunos detalles a la biblioteca. .

jar que nos permitirá conectarnos .Buscando el driver Seleccionando la pestaña Classpath y dando clic en el botón Add JAR/Folder se abre un cuadro de diálogo llamado Browse JAR/Folder que permite seleccionar el conector que ya hemos descargado llamado mysql5.11.1.

Agregando el driver Una vez encontrado el connector presionamos el botón 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 botón OK del cuadro de diálogo Library Manager .

Agregando el paquete a la librería En la parte del workspace del proyecto vamos a seleccionar el folder Librares para agregar la librería .

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 opción Add Library o seleccionar de la lista la biblioteca recién creada con el nombre MySQL. debe aparecer como una nueva entrada dentro del nodo Libraries .

seleccionamos la biblioteca recién creada llamada MySQL. y al agregarla debe aparecer como una nueva entrada en la carpeta Libraries y listo. .Librería agregada Nos aparece el siguiente cuadro de diálogo llamado Add Library.

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. Una vez instalado MySQL. .Librería agregada Como se observa la nueva biblioteca se ha agregado al proyecto aparece como una nueva entrada en la carpeta Libraries del proyecto.

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.Conectándose 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. .

Database URL:. Aparecerá un cuadro de diálogo para establecer una conexión nueva. en el formato: jdbc:mysql://servidor:puerto/baseDatos . Establezca el URL de la base de datos.Conectándose a la Base de Datos Selecciona la opción Connect Using…. del menú emergente. como se muestra en la figura.

Estableciendo la conexión .

como se muestra en la figura. . aparecerá un nuevo nodo con la conexión a la base de datos.Estableciendo la conexión En la ventana Services.

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

Creando el Servlet En la carpeta Source package damos clic derecho y seleccionamos la opción New/Servlet .

Creando el ServletConsulta .

.

Agregando la clase ServletConsulta .

Agregando el paquete java.sql .

Estableciendo la conexión .

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 .