Sie sind auf Seite 1von 7

Servlet Un programa escrito en Java que se ejecuta en el marco de un servicio de red (mdulo en un servidor).

Recibe y responde a peticiones de uno o ms clientes. Una pequea aplicacin que se ejecuta en el servidor. Cuya tarea es realizar la funcionalidad de nuestra aplicacin. Esto puede ir desde generar una pgina hasta controlar el acceso a la misma entre otras tareas. Extiende la funcionalidad de una aplicacin WEB.

Caractersticas: Son independientes del servidor utilizado. Pueden llamar a otros servets o delegar a los EJB. Permite redireccionar peticiones. Pueden obtener informacin del cliente como direccin de IP, el puerto, mtodo utilizado (GET o POST) entre otros. Permiten la utilizacin de cookies y sesiones, por ejemplo para mantener la sesin de un cliente. Estn en la capa intermedia, entre los datos y el cliente. Permiten la generacin dinmica de cdigo HTML. Tiene un ciclo de vida que es manejado por el contenedor web. Uso: La mayora de los desarrollos utilizan la clase HttpServlet, sub-clase de GenericServlet. La clase HttpServlet dispone de una implementacin del mtodo service(). Este mtodo posee el HttpServletRequest y el HttpServletResponse para el manejo de peticiones Http. Esta implentacion detecta el tipo de servicio http que le ha sido solicitado (doGet(), doPost(), etc).

Finalmente que es un SERVLET Objeto JAVA basado en el framework Servlet. Extiende la funcionalidad del servidor WEB. Se encarga de crear contenido dinmico.

La clase Java que implemente el servlet deber de extender la clase javax.servlet.HttpServlet. Public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponseresponse){ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<title>Hello World!</title>"); } .... } Dentro de esta clase tenemos que codificar, al menos, un mtodo. El mtodo doGet. Este mtodo es el que se ejecuta cuando el servlet recibe una peticin del tipo GET (las ms normales en Internet).
public class MiPrimerServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ... } }

El mtodo doGet recibe dos parmetros: HttpServletRequest y HttpServletResponse. Estos dos parmetros representan el stream de peticin y el stream de respuesta. Y ambos llevan los datos intrnsecos a la peticin o respuesta.
El proceso de ejecucin de un servlet:

1. El proceso comienza con la peticin HTTP que llega en primer lugar al servidor web (ejemplo
Apache).

2. La peticin se traslada al Contenedor de aplicaciones, en concreto a su motor del servicio


Servlet/JSP (con su propia JVM).

3. El motor encapsula la informacin de la peticin en un objeto del tipo HttpServletRequest,


adems encapsula en un objeto HttpServletResponse el flujo de respuesta.

4. El motor crea por cada peticin un hilo, sobre el que se invoca a la funcin service() del servlet.
En funcin del mtodo de la peticin (POST o GET ...), service() llamar al mtodo correspondiente del servlet: doPost(), doGet() ..., pasndoles los objetos de HttpServletRequest y HttpServletResponse. En realidad hay ms mtodos HTTP (trace, etc.), pero GET y POST son los ms habituales.

JSP Java Server Pages (JSP) es una tecnologa que nos permite mezclar HTML esttico con HTML generado dinmicamente. JSP no nos da nada que no pudiermos en principio hacer con un servlet. Pero es mucho ms conveniente escribir (y modificar!) HTML normal que tener que hacer un billn de sentencias println que generen HTML. Adems se dificulta el mantenimiento, ya que al cambiar se debe recompilar. Los JSP proveen una clara separacin entre la presentacin y la lgica. <html> Hello World! <br> <jsp:useBean id="clock" class=calendar.JspCalendar /> Today is <ul> <li>Day of month: <%= clock.getDayOfMonth() %> <li>Year: <%= clock.getYear() %> </ul> </html> JavaScript puede general HTML dinmicamente en el cliente. Este una capacidad til, pero slo maneja situaciones donde la informacin dinmica est basada en el entorno del cliente. JavaScript no puede acceder a los recursos en el lado del servidor. Que son los Scriplets? Son pedazos de cdigo en Java dentro de las etiquetas <% y %> JSP vs Servlet Una pgina JSP se convierte en servlet cuando es compilada, por lo que al hacer una pgina JSP, implcitamente ests haciendo un servlet. La ventaja que te da la tecnologa JSP es que todo el contenido html de la pgina, sea escrito en html normal, y que slo escribas cdigo java cuando se necesita algn comportamiento. En el Servlet el cdigo HTML es escrito en JAVA. Es ms fcil para el desarrollador Web trabajar con JSP. Una arquitectura bien diseada dejara las JSP como vistas, los Servlets como controladores.

Que realiza el Servlet Recibe la peticin del cliente (request o HttpRequest) Extrae informacin de la peticin Genera contenido o algn proceso de la lgica de negocio (Acceso a DB, invocar EJBs) Crea y enva la respuesta al cliente (HttpResponse) o enva la respuesta a otro servlet o pagina JSP. Request y Response Que es el request Informacin que es enviada del cliente al servidor Quien hace el pedido Que informacin es enviada por el usuario Que cabeceras http son enviadas Que es el response Informacin que es enviada del servidor al cliente Texto o Datos Binarios Cabeceras http, cookies, etc. HTTP GET y POST Get La informacin del usuario es anexada a la direccin URL. Puede enviar una cantidad limitada de informacin. Post La informacin del usuario es enviada como datos. Cualquier cantidad de informacin.

Ciclo de Vida

Init() y Destroy() Son invocados solo una vez.

Que hacemos en los mtodos doGet( ) y doPost( ) Extraer informacin del cliente del Http request Establecer y obtener (Get y Set) atributos de los objetos

Realizar algn proceso de la lgica de negocios y/o acceso a DB Opcionalmente enviar la peticin a otro componente Web (Servlet o JSP) Armar la respuesta y enviarla al cliente.

Das könnte Ihnen auch gefallen