Introducción a Java Servlets con NetBeans
Autor: Luciano | Categoría: IDEs, J2EE, Programación
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.

<form action="Servlet_Hola" method="POST">
Ingrese su nombre:
<input type="text" name="nombre" value="" size="45" />
<input type="submit" value="Enviar" name="enviar" />
</form>
- 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:
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 <code>GET</code> and <code>POST</code> 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("<html>");
out.println("<head>");
out.println("<title>Servlet Servlet_Hola</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>");
out.println("Hola <strong>" + request.getParameter("nombre").toString() + "<strong>");
out.println("</p>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> 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 <code>POST</code> 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";
}
// </editor-fold>
}
- 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.
42 Respuestas para "Introducción a Java Servlets con NetBeans"
[...] artículo es la continuación del ejemplo iniciado con Introducción a Java Servlets con NetBeans. El objetivo es modificar el proyecto realizado, para que los datos que se envían al Servlet se [...]
Gracias a dios existen gentes como tu, me estaba rompiendo la cabeza tratando de correr un servlet, muchas muchas gracias
Gracias, jamas lo hubiera hecho sin tu explicacion, ahora ya puedo correr los servlets, pero tengo una pregunta:
¿Puedo meter trozos de pagina web en metodos para mostrar diversas cosas segun alguna condicion o opcion dada?
Gracias
Si, por supuesto que puedes hacerlo. Pues en definitiva lo que estás devolviendo es un string que luego lo interpreta el browser.
Es más, si te anduvo este ejemplo, te recomiendo pruebes algo más: AJAX. Fíjate en el pequeño ejemplo que publiqué tiempo atrás en Servlets, NetBeans y AJAX
Saludos.
Muchas Gracias, le voy a confesar que le tengo un poco de temor a AJAX, es algo nuevo, pero lo voy a revisar en un par de horas
Gracias por tu tiempo tio, muy didactico ahora la tengo mas clara
Muxisimas gracias, yevo un par de días dandole vueltas al tema y me ha servido de ayuda tu tutorial de servlets, ya lo tengo claro. Un saludo
Se agradece mucho vuestros comentarios.
Saludos.
Hola!
Antes que nada muchas gracias por tu publicación, me ha sido de gran ayuda ya que nunca he utilizado el NetBeans, por otro lado, quiero pedirte ayuda por que he seguido al pie de la letra lo que dices, pero al momento de correr el archivo no pasa nada, la verdad no se si yo no se correrlo o hay un problema con mi Tomcad, pero tengo hechas aplicaciones con ese tomat y funcionan sin problemas. Por favor, ayudame!.
Minetaky.
En privado intentaré ayudarte a partir del error que me envias.
Saludos y gracias por visitar el blog.
Muchas gracias Luciano, sera por que necesito agregar la ruta del xml del tomcat en el netbeans??, por que revise el xml de tomcat y ahi no esta agregado el nuevo servlet que hice con el netbeans, sólo está agregado en un xml que está dentro de la carpeta del proyecto del netbeans. Si necesitas que te de mi email por favor dime. Saludos!!
Te he contestado la pregunta anterior al email que has ingresado (y que no es publicado) cuando realizas el comentario.
Entiendo que has ingresado bien el email, ¿no?
Gracias Luciano…. me sirvio mucho tu articulo, ahora ya pude correr mi primer servlet
@Saul, se agradece tu comentario.
Saludos
AMIGOS BUENAS NO SE SI TIENEN LINKS O FOROS DONDE ENCONTRAR EJEMPLOS COMO ESTE PERO DE NIVELESS PUES …. ES Q RECIEN COMIENZO EN ESTE MUNDO Y PARA MI LO MEJOR SON LOS EJEMPLOS … LUEGO LOS ANALIZO ….
GRACIAS
Te recomiendo los Tutoriales por entregas de JavaServer Faces
SI VIEJO LA VERDAD UN 10 EN LA EXPLICACION, GRACIAS POR LAS DUDAS Y ACLARACIONES!!!! NO HAS PENSADO SER PROFESOR???JAJAJAJA
Tengo un problema tengo instala el tomcat y el netbeans 6.5 con galssfish y tomcat al ejecutar la aplicacion la compilacionesta bien pero cuando habre el browse no se ejecuta la aplicacion pareciera q no viera el contenedor web me podrias ayudar
Primero felicitarte Luciano, después de dar mil vueltas por foros buscando ayuda para trabajar con servlets utilizando netbeans y tomcat encontré tu explicación, muchísimas gracias.
Tengo un problema a la hora de ejecutar el servlet desde netbeans, te comento:
Trabajo con netbeans 6.1 y tomcat 6.0, es decir, me sirve el ejemplo que has explicado perfectamente, el problema es que cuando ejecuto el proyecto desde netbeans se inicia el tomcat pero no llega a abrirse el navegador, se queda esperando por tomcat y no llega a verse nada. Lo que hice para solucionarlo fue exportar el proyecto a .WAR e introducirlo en la carpeta de webapps del tomcat y así si he conseguido que funcione bien.
Me gustaría saber si hay alguna forma de conseguir ejecutar directamente desde el netbeans, que ví que le habías contestado a alguien en privado con una pregunta parecida.
Gracias de ante mano, saludos, Pablo.
hola Esta muy entendible tu ejemplo…Gracias por explicar….
Mi estimado, fue de gran utilidad tu aporte, muchas gracias!!!
gracias!!!! =^_^=
excelente articulo
Muchas Gracias un buen ejemplo estoy inicando con esto de los servlets y los libros no son tan exactos.
Muchas gracias
oh gracias esta mas claro ahora
Muchas gracias por este tutorial tan practico te quedo muy bueno, me gustaria contactarte, pues necesito hacer algo un poco mas complejo y pues seria super si me podrias ayudar, te agradezco si me pasas tu mail.
Puedes enviarme un mail en la solapa “Contacto”, y de ahí te responderé y te daré una mano en lo que necesites.
Saludos.
Gracias por compartir tus conocimientos, espero poder encontrar mas ayuda sobre este tema.
Si tuvieras otros ejemplos.
Ejemplo super claro, gracias
Gracias por fin logre mi objetivo!!!!!
Ty muy buena explicacion !
Muchas Gracias Luciano…
Hace un buen rato que inicie un proyecto con netbeans,jsp y mysql y no lo habia podido avanzar porq no se como se usan los servlets, me fue de mucha ayuda tu publicacion…
Debo de usar el DWR, una libreria para ajax, pero de igual manera esta muy limitado mi conocimento en eso, tienes alguna publicacion o informacion a cerca del uso de ajax, usando DWR para hacer aplicaciones web? Telo agradeceria muchoooo….
Saludos…
[...] Introducción a Java Servlets con NetBeans [...]
Muy buena explicación Luciano, al cual de doy las gracias ya que me sirvio de ayuda en mis primeros pasos de servlets.
saludos.
alert (‘xss’);
Mil gracias!!!, al fin hice mi primer servlet gracias a ti!!!, el minitutorial esta genial, mejor explicado imposible!!.
Suert!!
Buenas tardes luciano se que ha pasado mucho tiempo pero espero que sigas contestando a las preguntas yo he seguido todos tus pasos pero siempre me dice
type Informe de estado
mensaje /examples/servlets/
descripción El recurso requerido (/examples/servlets/) no está disponible.
Y ya no se que hacer… me podrias ayudar por favor. Gracias
Muchas gracias por tu artículo, me sirvió bastante.
En un principio me aparecía una página en blanco al llamar al Servlet, pero era el típico error de poner mal los parámetros, en este caso, había puesto “nombre” con N mayúscula en el index.jsp y en el servlet no. Afortunadamente salí luego del lío. Reitero las gracias.
Hola!!
MucHAS GRACIAS EXCELENTE!!!
Gracias, de verdad excelnte explicacion, ojala y te des tiempo para subir sobre frameworks como spring o struts, claro si no es mucho abuso
mira la verdad todo estuvo muy bien ya que si le entendi a tu ejemplo
pero no se si me podrias ayudar o alguien por que despues de haber pintado el nombre quiero que al darle a un boton(enviar) que puse dentro del servlet este dato que introdujimos lo mande a un jsp
la verdad no se com hacerlo
por su ayuda gracias
Muchas gracias
He creado mi primer servlet para una exposicion en la universidad
Comentarios: