Cursos subvencionados para trabajadores
Realiza el curso gratis a través de tu empresa.
Cursos SubvencionadosCuando un cliente web invoca a un servlet ubicado en un servidor J2EE compatible, se le envía la siguiente información:
Comando del protocolo http//Ruta URI del recurso solicitado al servidor//Versión del protocolo
Ejemplo:
GET || /servlet/ServletPrueba || 1.0
Ejemplos:
accept: indica los tipos MIME soportados por el cliente.
referer: indica el URL del recurso web del que proviene la petición actual.
accept-lenguage: indica los idiomas preferidos del cliente.
content-type: indica el tipo MIME asociado al envío de la petición del cliente. En este caso es el asociado a un formulario html.
content-length: indica el tamaño en bytes de los datos enviados en la petición. Sólo disponible en peticiones basadas en post.
user-agent: indica el tipo de cliente que ha realizado la petición al servlet. En este caso un navegador web. Puede ser utilizado para enviar diferentes respuestas en función de tipo de cliente. El “Mozilla” que aparece está asociado a una versión de Netscape que se necesita soportar por cuestiones de compatibilidad con JavaScript.
cookie: utilizado para devolver las cookies que el servidor envió con anterioridad al cliente.
Las propiedades de las interfaces a las que pertenecen las instancias que se les pasan a los métodos de servicio doXXX(..) de gestión de petición y generación de respuesta se resumen así:
- String getParameter(String name): devuelve el value asociado al name que se le pasa al argumento. Recordar que el servlet recibe datos de los clientes mediante pares name/value. Devuelve null si no se encuentra el name que se le pasa. Este método es el mismo que se empleó en los applets cuando se querían capturar parámetros desde el código html del applet. MUY USADO.
- String[] getParameterValues(String name): devuelve un array de String que contiene todos los values asociados al name que se le pasa al método. Si el name no existe, devuelve null.
Suele emplearse en las casillas de verificación, los botones de opción o radio-button, en las listas desplazables y en las listas desplegables con el fin de conocer las opciones seleccionadas por el usuario. Todas las opciones de elección comparten un name común.
- Enumeration getParameterNames(): devuelve una Enumeration que contiene todos los names asociados a la petición del cliente.
Esta Enumeration se recorrerá mediante los métodos conocidos boolean hasMoreElements() y Object nextElement()
Suele emplearse cuando se desconocen los nombres de los names de la petición o son muchos y se necesitan capturar todos.
- String getProtocol(): devuelve el protocolo empleado en la comunicación cliente-servidor y viceversa.
- String getRemoteAddr(): devuelve la dirección ip del cliente que realiza la petición.
- String getRemoteHost(): devuelve el nombre del cliente que realiza la petición. El contenedor web puede devolver la dirección ip en vez del nombre de dominio, si no puede resolverlo o si elige no hacerlo con el fin de mejorar su rendimiento.
- int getRemotePort(): devuelve el número de puerto por el que el cliente realiza la petición.
- String getRemoteUser(): devuelve la contraseña del usuario que realiza la petición si el acceso al servlet precisa de autentificación. Si no, devuelve null.
- String getContentType(): devuelve el tipo MIME empleado en el cuerpo de la petición. Si es desconocido por el cliente, devuelve null.
- String getMethod(): devuelve el tipo de petición. Habitualmente get o post.
Para explicar los siguientes métodos, considerar que se invoca a PrimerServlet tecleando en la barra de direcciones del cliente http://localhost:8080/servlets-examples/PrimerServlet?nombre=Jesus. Antes de explicarlos, conviene tener clara la diferencia entre URI y URL.
URI (Uniform Resource Identifier): identifica a cualquier recurso. No indica cómo acceder al mismo. Ejemplo: para identificar a PrimerServlet, se emplea el contenido de la etiqueta <url-pattern> (/PrimerServlet) en el descriptor de despliegue
Podría haberse empleado otro URI para el servlet, como /cursofer/javaprofe/PrimerServlet. Verificarlo agregando al descriptor
e invocando a PrimerServlet mediante el siguiente URL
http://localhost:8080/servlets-examples/cursofer/javaprofe/PrimerServlet?nombre=Jesus
URL (Uniform Resource Locator): URIs que trabajan con típicos protocolos de Internet como http, ftp, etc. y que indican cómo acceder al recurso. Ejemplo: http://localhost:8080/servlets-examples/PrimerServlet?nombre=Jesus
- String getQueryString(): devuelve la cadena de parámetros de la petición siempre y cuando la petición sea get. Si no, null. En el ejemplo, nombre=Jesus
- String getRequestURI(): devuelve la ruta URI de la petición, es decir, la cadena situada entre el host y el puerto, y los parámetros. En el ejemplo, /servlets-examples/PrimerServlet
- StringBuffer getRequestURL(): devuelve el URL de la petición. En el ejemplo, http://localhost:8080/servlets-examples/PrimerServlet?nombre=Jesus
- String getServletPath(): devuelve la ruta URI del servlet relativa al directorio raíz de la aplicación. No tiene en cuenta la cadena de parámetros. En el ejemplo, /PrimerServlet
- Enumeration getHeaderNames(): devuelve una Enumeration que contiene los names de los encabezados de petición enviados por el cliente.
- String getHeader(String encabezadoPeticion): devuelve el valor del encabezado de petición que se le pasa al método. Se analizará con más detenimiento en temas posteriores.
Estos tres últimos métodos pertenecen a HttpServletRequest, el resto a su superinterface inmediata ServletRequest. Se aconseja al lector que consulte la API para conocer más métodos de estas interfaces.
- PrintWriter getWriter(): devuelve un objeto de la clase java.io.PrintWriter que representa el flujo de salida que permite la escritura de caracteres. Se utiliza para generar la respuesta que se envía al cliente.
PrintWriter cuenta con métodos adecuados para escribir dicha respuesta. Habitualmente se emplea println(String s). El uso de este método provoca que deba importarse el paquete java.io, además de los dos propios de los servlets. MUY USADO.
- void setContentType(String tipoMIME): especifica el tipo MIME de la respuesta y el código de caracteres empleado para definirla. Por defecto, su valor es text/plain;ISO-8859-1
- ServletOutputStream getOutputStream(): devuelve un objeto de la clase ServletOutputStream que modela un flujo de salida que permite la escritura de datos a nivel de bytes. Lanza una IOException que debe capturarse. Se hará un ejercicio al final del tema.
- void addCookie(Cookie cookie): agrega un objeto de la clase Cookie en el código de la respuesta que permite obtener información del cliente que ha realizado la petición. Se verá más adelante.
- void encodeURL(String s): se estudiará más adelante en el tema de sesiones.
- void sentRedirect(String s): ídem anterior.
- void sendError(int n): ídem anterior.
Estos tres últimos métodos pertenecen a HttpServletResponse
Ahora se aconseja encarecidamente realizar el ejercicio 1 de la lección, siguiendo los dos recordatorios indicados en su enunciado.
Copyright 2010© ADRInfor S.L. Logroño | Tel: 941250116 Fax: 941236805 |
Email |
Política de Privacidad |
Aviso Legal |
Área Privada
Descubre Educaplay: nuestra plataforma para la creación y disfrute de actividades y juegos educativos multimedia