Download Servlet - Amazon Web Services

Document related concepts
no text concepts found
Transcript
SERVLET
"java del lado del
servidor" Servlet y JSP
Java Server Pages.
¿QUÉ ES UN SERVLET?
Un Servlet es una clase Java usada para extender la capacidad de aplicaciones
basadas en el modelo cliente-servidor y que utilizan el protocolo HTTP basado en la
interacción de ambos extremos por medio de una petición y una respuesta.
Los Servlets son una potente herramienta para la generación de contenido dinámico en la
Web.
Según la arquitectura: un Servlet es un componente Web que se ejecuta dentro de un
contenedor web y genera contenido dinámico.
Según la programación: Los Servlets son pequeñas clases Java independientes de la
plataforma compiladas en bytecode que pueden ser cargadas dinámicamente y
ejecutadas dentro de un servidor web.
CONTENEDOR SERVLET
Un contenedor de Servlet es un programa capaz de recibir peticiones de páginas
web y redireccionar estas peticiones a un objeto Servlet.
Encargado de la gestión de los Servlets (instanciar, acceso, destrucción...), y el que
controla su ciclo de vida.
Programa adicional que hay que instalar para dar soporte a este tipo de
aplicaciones Java en entornos J2EE. Algunos de estos "contenedores" disponibles son
MacroMedia JRun, Bea WebLogic, Sun One y uno de los más populares: Apache
Tomcat.
FINALIDAD DE LOS SERVLETS
Aunque los Servlets pueden responder a cualquier tipo de petición, se usan
comúnmente en aplicaciones alojadas en un servidor web. Para dichas aplicaciones, la
tecnologia Java Servlet define clases Servlet HTTP y los paquetes javax.Servlet y
javax.Servlet.http facilitan clases e interfaces para escribir Servlets.
FUNCIONALIDAD
1.Leer los datos enviados por el cliente.
2. Extraer cualquier información útil incluida en la cabecera HTTP o en el cuerpo del
mensaje de petición enviado por el cliente.
3. Generar dinámicamente resultados.
4. Formatear los resultados en un documento HTML.
5. Establecer los parámetros HTTP adecuados incluidos en la cabecera de la
respuesta (por ejemplo: el tipo de documento, cookies, etc.)
6. Enviar el documento final al cliente.
PÁGINAS WEB DINÁMICAS: JSP
Las páginas JSP (Java Server Pages) surgen con la idea de facilitar la creación de
contenido dinámico a desarrolladores sin necesidad de conocer a fondo el lenguaje
Java. Una página JSP combina código HTML con fragmentos de código Java con el
objeto de producir un contenido Web en el que se mezclan tanto componentes
estáticos como dinámicos. Además de código HTML y fragmentos de código Java,
una página JSP puede instanciar clases, hacer llamadas a otras páginas JSP,
Servlets e incluir JavaBeans y applets.
JSP
Para pasar datos de un JSP a otro o bien a un Servlet utilizaremos las Request mediante el uso
de formularios. Utilizaremos los formularios para la creación de cuestionarios, páginas de
comentarios, logins o cualquier parte del documento que requiera interacción con el usuario.

Id: Nombre del formulario, deberá ser único.

Action: Servlet que tratará la petición.

Method: Protocolo que se usará para el envío de los datos. Los valores
pueden ser GET y POST, con el primero los par se envían los
parámetros de la request para el servlet dentro de la URL mientras que
con el segundo los parámetros de la request se encapsulan en la trama
que se envía por el protocolo HTTP.
DIRECTORIO WEBAPPS
Una vez instalado el contenedor, existirá un directorio llamado "webapps". Es en él donde
colocaremos todas las aplicaciones web que hagamos (servlets, jsp, ejb, etc). Lo ideal es
que nos creemos otro directorio dentro del mismo y allí dentro, otra estructura de
directorios que incluirán uno llamado "WEB-INF" y dentro de ese, otro con el nombre
"classes" (exactamente, incluyendo las mayúsculas, guiones, etc. Para la práctica, yo hice el
directorio "misServlets", quedando la estructura siguiente:
+---Tomcat 5.5
|
+---webapps
|
+---misServlets
| Param.html
|
+---WEB-INF
| web.xml
|
+---classes
ParamServlet.class
EL DESCRIPTOR DE DESPLIEGUE
El "descriptor de despliegue", es un elemento necesario antes de que pueda invocarse
cualquier servlet y que describe cada uno de ellos. Este fichero se llama siempre
web.xml
EJECUCIÓN Y RESULTADOS
http://localhost:8080/misServlets/Param.html
Al pulsar el botón Enviar del formulario, se envía la "petición" del usuario a Tomcat.
El contenedor recibe la petición y buscará el servlet en la lista de los posibles en nuestro
descriptor web.xml.
Si todo está bien, será encontrado e invocado, ejecutando el método POST (que es como el
main), ya que así se indicaba en la etiqueta <FORM> de la página HTML. El método Post()
tiene dos argumentos. El primero representa la "petición" del cliente (usuario remoto) y con
el nombre de HttpServletRequest; el segundo es la "respuesta" que generará el servlet
hacia el cliente en la forma del objeto HttpServletResponse.
El servlet, lo primero, ha de indicar el tipo de información que se va a emitir (html) y luego
forma un objeto asociado con el navegador web del cliente para imprimir allí los
resultados, por medio del método getWriter(). Extraerá los datos de los cuadro de texto
(el nombre y la edad) mediante los métodos getParameter() y se dedicará a formar la
página HTML dinámica. Una vez terminada, se cierra (close) y es enviada
automáticamente.