Servlets (Básico)

Para invocar un servlet desde dentro de una p�gina HTML se utiliza la URL del servlet en la etiqueta HTML apropiada.

Esta p�gina utiliza los servles ShowCart, Cashier, y Receipt de Duke's Bookstore. Afortunadamente este es el orden en que se ver�n los servlets cuando miremos nuestra hoja y compremos nuestros libros.

Para un acceso m�s directo al servlet ShowCart servlet, pulsa el enlace Show�Cart que hay en la p�gina principal del Duke's Bookstore. Si tenemos servletrunner o un servidor web configurados para ejecutar el ejemplo, vayamos a la p�gina principal de la librer�a mostrada en la p�gina anterior. S�lo por diversi�n, podr�amos a�adir un libro a nuestra hoja de pedido antes de acceder al servlet ShowCart.

.�Ejemplos de URLs de Servlets en etiquetas HTML

La p�gina devuelta por ShowCartServlet tiene varios enlaces, cada uno de los cuales tiene un servlet como destino. Aqu� podemos ver el c�digo de esos enlaces.

    public class ShowCartServlet extends HttpServlet { 

        public void doGet (HttpServletRequest request,
                           HttpServletResponse response)
	    throws ServletException, IOException
        {
                ...
                out.println(... +
                            "<a href=\"" +
                            response.encodeUrl("/servlet/cashier") +
                            "\">Check Out</a> � � �" +
                            ...);
                ...
        }
        ...
    }

Este c�digo resulta en una p�gina HTML que tiene el siguiente enlace.

    <a href="http://localhost:8080/servlet/cashier>Check Out</a">

Si llamamos a la p�gina del showcart, podremos ver el enlace como si vieramos el fuente de la p�gina. Luego pulsamos sobre el enlace. El servlet cashier devolver� la p�gina que contiene el siguiente ejemplo.

La p�gina mostrada por el server cashier presenta un formulario que pide el nombre del usuario y el n�mero de la tarjeta de cr�dito. El c�digo que imprime el formulario se parece a esto.

    public class CashierServlet extends HttpServlet { 

        public void doGet (HttpServletRequest request,
                           HttpServletResponse response)
	    throws ServletException, IOException
        {
            ...
            out.println(... +
                        "<form action=\"" +
                        response.encodeUrl("/servlet/receipt") +
                        "\" method=\"post\">" +
                        ...
                        "<td><input type=\"text\" name=\"cardname\"" +
                        "value=\"Gwen Canigetit\" size=\"19\"></td>" +
                        ...
                        "<td><input type=\"submit\"" +
                        "value=\"Submit Information\"></td>" +
                        ...
                        "</form>" +
                        ...);
            out.close();
        }
        ...
    }

Este c�digo resulta en una p�gina HTML que tiene la siguiente etiqueta para iniciar el formulario.

    <form action="http://localhost:8080/servlet/receipt" method="post">

Si cargamos la p�gina del servlet cashier en nuestro navegador podremos ver la etiqueta que inicia el formulario como si vieramos el fuente de la p�gina. Luego enviamos el formulario. El servlet receipt devolver� una p�gina que contiene el siguiente ejemplo. La p�gina del servlet receipt se resetea a s� misma, por eso si queremos verla, tenemos que hacerlo r�pido!.

La p�gina devuelta por el servlet receipt tiene una "meta tag" que utiliza una URL de servlet como parte del valor del atributo http-equiv. Espec�ficamente, la etiqueta redirecciona la p�gina hacia a la p�gina principal del Duke's Bookstore despues de dar las gracias al usuario por su pedido. Aqu� podemos ver el c�digo de esta etiqueta.

    public class ReceiptServlet extends HttpServlet { 

        public void doPost(HttpServletRequest request,
                           HttpServletResponse response)
	    throws ServletException, IOException
        {
            ...
            out.println("<html>" +
                        "<head><title> Receipt </title>" +
                        "<meta http-equiv=\"refresh\" content=\"4; url=" +
                        "http://" + request.getHeader("Host") +
                        "/servlet/bookstore;\">" +
                        "</head>" +
            ...
        }
        ...
    }

Este c�digo resulta en una p�gina HTML que tiene la siguiente etiqueta.

    <meta http-equiv="refresh"
        content="4; url=http://localhost:8080/servlet/bookstore;">

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP