Jsp y Servlets
En este capítulo vamos a ver como los servlets recuperan la información del cliente. Los servlets frecuentemente reciben los datos de POST y GET, que son usados indistintamente en muchos casos. Los tres métodos utilizados para recuperar los parámetros de la petición ServletRequest son: getParameterNames() getParameter()getParameterValues()
La forma de escribir cada uno de ellos es la siguiente: public Enumeration ServletRequest.getParameterNames();
Este devuelve los nombres de los parámetros de la solicitud con una enumeración de cadenas, o enumeración vacía en caso de no existir parámetros. Se utiliza como un método de apoyo a getParameter(). public String ServletRequest.getParameter(String name);
Este métododevuelve una cadena que contiene el único valor del parámetro especificado, o null en caso de que el parámetro no esté contenido en la solicitud. El método debe utilizarse únicamente cuando se está seguro del contenido de la solicitud, es decir, se debe estar seguro que solo contiene un valor para el parámetro. En caso de contener múltiples valores debe utilizarse getParameterValues(). public String[]ServletRequest.getParameterValues(String name);
Retorna los valores del parámetro especificado como una matriz de cadenas, null en el caso de que el nombre del parámetro no exista en la solicitud.
Peticiones GET y POST
Vamos a ver un ejemplo de un servlet que atiende a una petición POST. El servlet recupera los parámetros enviados y devuelve los parámetros y sus valores devuelta alcliente. El código es el siguiente: import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*;
public class servlet extends HttpServlet {
public void init(ServletConfig config) throws ServletException{ //el parámetro de servletconfig va en una súper clase super.init(config); }
protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { out.println(""); out.println(""); out.println("Servlet servlet"); out.println(""); out.println(""); out.println("Servlet servlet at " + request.getContextPath() + ""); out.println(""); out.println(""); } finally { out.close(); } }
//vamos a procesar lapeticion HTTP GET
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(""); out.println("Servlet formulario"); out.println("");
// Obtengamos los nombres de todos los parámetros Enumeration parameters = request.getParameterNames(); String param= null;
// Iterar sobre los parámetros y obtener los nombres de cada uno de ellos while ( parameters.hasMoreElements() ) { param = (String)parameters.nextElement(); out.println("" + param + " : " + request.getParameter(param) + ""); } out.println(""); out.close(); }
//procesando las peticiones HTTP POST protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {
//llamando al mismo método anterior para no repetir código //solamente le enviamos los mismos parámetros recibidos en POST doGet(request,response); }
//obteniendo información del servlet public String getServletInfo() { return "Información del servlet atiende formulario"; } }
Como pueden ver al revisar este código que el servlet está atendiendo tantopeticiones GET como las POST. Podemos invocar al servlet desde una dirección URL o mediante el uso de un formulario. Ahora vamos a revisar cómo es que va a quedar la parte del formulario en HTML y el código necesario para invocar al servlet usando el método POST.
CAPITULO 4 Apellido:
Nombre: Edad: Usuario: Contrasena:
El formulario se...
Regístrate para leer el documento completo.