jump to navigation

Recibir parametros en un Servlet Diciembre 25, 2007

Publicado por lineadecodigo en : Java , trackback

A la hora de enviar información a un servlet tenemos dos formas: mediante el método GET y mediante el método POST. Existen una serie de diferencias entre pasarlos de una forma u otra:

Metodo POST. Este método solo esta accesible desde los formularios. Se envían los parámetros de forma implícita junto a la página, es decir, al pasar los parámetros, nosotros no vemos reflejado en ningún sitio qué parámetros son y cual es su valor.

Método GET. Este método envía los parámetros de forma explicita junto a la página, mostrando en la barra de navegación los parámetros y sus valores. Son esas largas cadenas que aparecen en algunas páginas en nuestra barra de navegación, del estilo: buscar?id=1806&valor=0987&texto=todo&...

Las cadenas toman el aspecto parametro1=valor1¶metro2=valor2&....¶metroN=valorN. Es decir es una concatenación a través de & de pares parámetro-valor.

Preparando la página de envío

La página de envío será una simple página HTML. Lo primero que tenemos que hacer es montar las URL de envío. La URL está compuesta por el nombre del servidor, en nuestro caso localhost, el puerto (8080), el nombre de la aplicación web, en nuestro caso "lineadecodigo_j2ee" y el nombre del servlet.

Así la URL quedará de la siguiente forma:

http://localhost:8080/lineadecodigo_j2ee
            /RecibirParametros

La URL la montaremos en un formulario:

<form action="http://localhost:8080/lineadecodigo_j2ee
       /RecibirParametros" method="post">
  <label for="texto1">Texto 1</label><input type="text" id="texto1" name="texto1" size=20><br>
  <label for="texto2">Texto 2</label><input type="text" id="texto2" name="texto2" size=20>
  <input type="submit" value="Enviar">
</form>

y en un enlace:

<a href="http://localhost:8080/lineadecodigo_j2ee/RecibirParametros?texto1=lineadecodigo&texto2=imagen">Mandar parametros por GET</a>


Codificando el Servlet

Lo primero que hay que saber es que la clase que implemente el Servlet extiende de HttpServlet. Así el código será el siguiente:

public class RecibirParametros extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
 ...
}

Dentro del Servlet hay dos métodos importantes: doGet y doPost. Estos métodos son los que atienden las peticiones POST y GET de la página, respectivamente.

public class RecibirParametros extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	...
	}  	

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	...
	}
}

Ambos métodos reciben como parámetros los datos de la petición HttpServletRequest y el flujo de la salida de respuesta HttpServletResponse.

Podemos codificar los dos métodos para hacer cosas diferentes si viene una petición POST u otra GET. O bien, como en nuestro caso, encaminar una petición a la otra para tratarlas de una misma forma.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	doPost(request,response);
}

Para recibir los parámetros nos vamos a apoyar en el objeto HttpServletRequest y en concreto en el método .getParameter(). En este método indicaremos el nombre del parámetro que queremos recuperar.

String parametro1 = request.getParameter("texto1");
String parametro2 = request.getParameter("texto2");

En este caso los parámetros se llaman texto1 y texto2.

Lo siguiente que haremos será montar la respuesta. Ahora nos apoyaremos en el objeto HttpServletResponse. Mediante el método .getWriter() obtendremos el stream de salida. Esto lo manejamos mediante el objeto PrintWriter.

PrintWriter out;
out = response.getWriter();

Antes de empezar a volcar texto en el flujo de salida tenemos que indicar el tipo de contenido que se vuelca. En este caso es "text/html". Es lo que se denomina content-type.

response.setContentType("text/html");

Ahora solo quedará el ir volcando información mediante métodos .println(). El cual tiene como parámetro el texto a volcar a la página.

out.println("<html>");
out.println("<head><title>Enviar parametros a un Servlet</title></head>");
out.println("<body>");
out.println("<h1>Enviar parametros a un Servlet</h1>");
out.println("La primera palabra pasada como parámetro es <strong>" + parametro1 + "</strong><br>");
out.println("La segunda palabra pasada como parámetro es <strong>" + parametro2 + "</strong>");
out.println("</body></html>");

Visualizar el ejemplo | Descargar el codigo

Articulos Similares:

Enviar entrada por email Enviar entrada por email | Imprimir Imprimir | 12006 visitas

1 Star2 Stars3 Stars4 Stars5 Stars (2 votos, media: 3.50 de 5)
Loading ... Loading ...

Comentarios»

1. carlos - Abril 2, 2008

eso esta mal segurooooo

2. Hernan Rodriguez - Abril 2, 2008

como rescatar los parametros de un formulario, donde un href envie a una pagina servidor (servlet), pero que se asigne los parametros estaticamente

3. scsdsd - Octubre 31, 2008

La verdad esto no sirve mucho de nada ( osea nada ), tienen que usar JSP para hacer cosas como la gente

4. ziggurat - Diciembre 26, 2009

gracias!! a mi m r sirve!! jaaa, noce los otros por q t discuten, tal vez yo no lo hago, por q so nuevo, gracias dvuelta hE!

5. Gabriel - Enero 20, 2010

Me re sirvio Muchas Gracias, al que dijo “tienen que usar JSP para hacer cosas como la gente” , vichate eastwood de jfree ….


Imagen CAPTCHA CAPTCHA Audio
Refrescar imagen