Introducción a Java Servlets con NetBeans

Los Servlets son una de las tecnologías más importantes de Java. Esta publicación, es un simple ejemplo de construcción de un clásico Hola Mundo en una aplicación web J2EE.

Para este ejemplo, habremos de utilizar:

En mi caso, utilizaré NetBeans 6.1 con Apache-Tomcat 6.1, particularmente en su paquete Web & Java EE, que incorpora lo servidores de aplicaciones Java GlassFish y Apache Tomcat.

  • Iniciamos NetBeans y seleccionamos File \ New Project…
  • Se abre un diálogo que nos solicita el tipo de proyecto, seleccionamos Web Application

  • En el siguiente paso, nos solicita el nombre del proyecto (Project Name), en nuestro caso ingresamos Servlet_HelloWorld

  • El siguiente paso, nos solicita el servidor de aplicaciones (contenedor de Servlets a utilizar). Así, del combo Server, seleccionamos Tomcat (según la versión que yo tengo instalada, Tomcat 6.0.16)

  • Finalmente, nos permite seleccionar el o los frameworks a utilizar (Spring, Struts, JSF, etc). No seleccionamos nada pues, por ahora, para este ejempo, no vale la pena.
  • NetBeans crea por su cuenta el proyecto, una estructura de directorios, y dentro de la carpeta Web Pages un arhivo index.jsp, que será el punto de partida de nuestra aplicación. Si bien es de extensión JSP, por ahora no escribiremos código JSP, sinó simplemente un formulario HTML. En este formulario HTML definiremos en el atributo action el nombre del servlet que se ejecutará al enviar (submit) el formulario.


[HTML]

Ingrese su nombre:

[/HTML]

  • Luego, desde el explorador de proyectos, luego de hacer clic derecho en la carpeta Source Packages, seleccionamos New \ Servlet…

  • Aquí, se abre un diálogo que nos solicita nombre y paquete del servlet.
    • En nombre, hay que ingresar el mismo nombre del atributo action del formulario creado anteriormente, pues este será el servlet que recibirá los datos enviados por el formulario HTML. En nuestro caso, según indicamos en el form: Servlet_Hola.
    • En paquete se puede ingresar el nombre que se quiera, ahora no es de importancia.

  • Dados el nombre del servlet y el paquete, hacemos clic sobre Finish.
  • Finalizado esto, automáticamente crea una clase con el nombre de servlet dado (Servlet_Hola para nosotros), que hereda de HttpServlet. Además redefine (override) algunos métodos (doGet, doPost, getServletInfo) y los rellena con un poco de código. Además, crea un método processRequest (invocado desde los métodos doGet y doPost) para procesar los formularios que llegan por los métodos GET y POST.
  • Nosotros, en este ejemplo, nos limitaremos completar con unas pocas líneas (pues la mayoría la completó automáticamente el NetBeans) el método processRequest para que cree una página HTML que será la respuesta del formulario enviado:


[JAVA]
package com.luauf.servlet;

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class Servlet_Hola extends HttpServlet {

/**
* Processes requests for both HTTP GET and POST methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(“text/html;charset=UTF-8″);
PrintWriter out = response.getWriter();
try {
/*
TODO output your page here
*/
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“

“);
out.println(“Hola ” + request.getParameter(“nombre”).toString() + ““);
out.println(“

“);
out.println(“

“);
out.println(“”);

 

} finally {
out.close();
}
}

//
/**
* Handles the HTTP GET method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

/**
* Handles the HTTP POST method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

/**
* Returns a short description of the servlet.
*/
public String getServletInfo() {
return “Short description”;
}
//
}
[/JAVA]

  • Para finalizar, vamos a ejecutar el proyecto, podemos hacerlo desde el menú Run o haciendo abriendo el menú contextual del proyecto (desde el explorador de proyectos) y seleccionando Run.
  • Al ejecutar una aplicación web con NetBeans, lo primero que hace el mismo es un Deploy, algo así como distribuir la aplicación en el servidor. Por más que nuestro servidor sea local y que el NetBeans lo haga transparente para nosotros, debemos entender que el Tomcat se ejecuta cuando ejecutamos la aplicación y que además posee una estructura de directorios (distinta a nuestra estructura de carpetas del proyecto) donde almacena las aplicaciones web que corre, archivos de configuración, paquetes de clases, etc.
  • Al ejecutar el proyecto se abrirá el browser predeterminado con la página index.jsp (la que tiene el formulario):

  • Si ingresamos nuestro nombre en la caja de texto y apretamos Enviar, el formulario se envía al servlet, quien se ejecuta y nos devuelve una nueva página, con un dato, en particular, cargado dinámicamente: nuestro nombre:

Basado en el texto original publicado en Java Tips.

57 comentario en este artículoDeje el suyo
  1. Eres una maquina despues de muchos ides con este es el primero que consigo echarlo a andar.

  2. buen tutotial!! como para iniciar Jsp en Netbeans

  3. Ho,a tengo un problema uso glassfish 3.x y netbeans 7.01 , al mandar llamar el servlet me indica este error en la consola

    INFO: Skipping call to libraryExists(). Please set context-param com.sun.faces.enableMissingResourceLibraryDetection to true to verify if library http://java.sun.com/jsf/composite/components/places actually exists

    me podrias ayudar

    Saludos

  4. Gracias, muy claro todo; solo que le doy enviar pero recivo una pagina en blanco, no puedo saver que paso. Gracias de nuevo.

  5. muy bien explicado se agradece!

  6. Tengo un Problema con los servlets, necesito hacer un insert into para ingresar registro a la base de dato OralceExpress como hago la sintaxis. necesito ayuda plisss

2 menciones a este artículo
Deje su comentario

Por favor, ingrese su nombre

Por favor, ingrese un correo-e válido

Por favor, ingrese su mensaje

luauf.com 2014

WordPressx411W567p429X67