INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ Servlets M.C. José Alberto Morales Mancilla
[email protected]
Introducción Introducción a los Servlets Ser vlets 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 Introducción a los Servlets Ser vlets Los Servlets se ejecutan en el espacio de direcciones del servidor Web. 1. No es necesar necesario io crear crear un proceso proceso separa separado do para para gestio gestionar nar cada cada petición del cliente. 2. Los servlets servlets son indepen independiente dientess de la la plataforma plataforma debido a que están escritos en Java. 3. El adminis administrador trador de segurida seguridad d de Java Java en el servidor servidor impone impone un conjunto de restricciones para proteger los recursos del servidor. 4. Toda la la funcionali funcionalidad dad de las bibliot bibliotecas ecas de de Java Java están disponi disponibles bles 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 usuario solicita solicita una una petició peticiónn a un un servidor servidor Web Web por medio de una URL en un navegador Web. 2. La petición petición HTTP HTTP es recibi recibida da por el servido servidorr Web. El servidor servidor envía 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 servidor invoca invoca al método método init() init() del servlet. servlet. Este Este método método es invocad invocadoo solo cuando el servlet es cargado en memoria por primera vez. 4. El servidor servidor invoca invoca al método método service service del servle servlet. t. Este método se llama 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. El servidor llama al método 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 código abierto sustentado por el grupo Jakarta Project de Apache Software Foundation. Tomcat contiene las librerías o bibliotecas de clases, documentación y ambiente de ejecución que se necesita para crear y probar los servlets. Tomcat puede obtenerse de la dirección Web jakarta.apache.org.
Javax.servlet.http El paquete javax.servlet.http contiene diversas clases e interfaces utilizadas comúnmente 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
Descripción
HttpServletRequest
Permite al servlet leer datos de una petición HTTP.
HttpServletResponse
Permite al servlet escribir datos a una respuesta HTTP.
HttpSession
Permite leer y escribir datos en una sesión.
HttpSessionBindingListener
Informa a un objeto que ha sido enlazado a una sesión o desenlazado de una sesión.
Clases del paquete javax.servlet.http Las clases más importantes proporcionadas por el paquete javax.servlet.http se muestran en la siguiente tabla, de estas clases la más importante es la clase HttpServlet. Las clases de los servlets heredan de ésta clase para procesar las peticiones HTTP.
Clase
Descripción
Cookie
Permite almacenar información del estado del cliente en la máquina del cliente.
HttpServlet
Proporciona métodos para gestionar peticiones y respuestas HTTP.
HttpSessionEvent
Encapsula un evento de cambio en la sesión.
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.
Clase HttpServlet La Clase HttpServlet hereda de GenericServlet. Es usada cuando se desarrollan servlets que reciben y procesan peticiones http. Método
Descripción
void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException
Gestiona una petición GET vía HTTP.
void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException
Gestiona una petición POST vía HTTP.
void doPut(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException
Gestiona una petición PUT vía HTTP.
void service(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException
Es llamado por el servidor cuando se recibe una petición HTTP para el servlet. Los argumentos proporcionan la petición y la respuesta.
Creando un Servlet Iniciando con NetBeans 6.9.1, se selecciona File\New Project, se abre el siguiente cuadro de diálogo donde solicita la categoría y el tipo de proyecto. Se selecciona Java Web y Web Application y presionamos el botón Next
Creando un Servlet En el siguiente cuadro de diálogo nos pide el nombre del 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 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
Creando un Servlet Finalmente en el siguiente cuadro de diálogo me permite seleccionar el framework a usar, en este caso como es una aplicación 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 aplicación. Si bien es de extensión JSP por ahora será un formulario HTML
Agregando código
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 diálogo, 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 Automáticamente crea una clase con el nombre del servlet dado, que hereda de la clase HttpServlet, se redefinen algunos métodos doGet, doPost, getServletInfo . Se crea un método processRequest el cuál es llamado desde los métodos doGet y doPost para procesar los formularios.
Modificando el código
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 diálogo donde solicita el tipo de proyecto y se selecciona Web Application y presionamos el botón Next y ponemos nombre al proyecto
Eligiendo el Server 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
Seleccionando el framework En este caso como es una aplicación simple no seleccionamos ningún framework
Agregando la librería al proyecto Una vez que se ha creado la aplicación de Java, el siguiente paso es agregar una biblioteca, para ello en el menú Tools, se selecciona la opción Libraries
Agregando la librería Nos aparece el cuadro de diálogo Library Manager, para agregar la nueva biblioteca presionamos el botón New Library
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, 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
Agregando la librería Como se observa en la parte izquierda del cuadro de diálogo 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 diálogo.
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.1.11.jar que nos permitirá conectarnos
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
Librería agregada Nos aparece el siguiente cuadro de diálogo llamado Add Library, 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 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.
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. 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 Selecciona la opción Connect Using…, del menú emergente. Aparecerá un
cuadro de diálogo para establecer una conexión 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 conexión
Estableciendo la conexión En la ventana Services, aparecerá un nuevo nodo con la conexión 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 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