Vous êtes sur la page 1sur 10

TEORIA Y APLICACIN DE SERVLETS

Qu es un Servlet?
Un servlet es un programa Java que se guarda y ejecuta en un servidor J2EE(Java
Enterprise Edition).
Su funcin primordial es brindar contenido dinmico desde un servidor web.
La interaccin entre cliente y servlet se traduce, en la mayora de los casos, en la
generacin y posterior envo de una respuesta codificada en html al cliente, pero no
tiene por qu ser as: la respuesta podra realizarse en otro tipo de formatos tales como
pdf, xml, wml, zip, jar, gif, doc, xls, etc.

Usos que tienen los Servlets


- Permiten la colaboracin entre usuarios. Un servlet puede manejar mltiples
-

peticiones concurrentes, y puede sincronizarlas. Esto permite a los servlets


soportar sistemas como conferencias online.
Reenviar Peticiones. Los servlets pueden enviar peticiones a otros servidores o
servlets de tal forma que podramos ejecutar otros programas en el servidor web.
Seguridad. Los servlets ofrecen posibilidad de configuraciones usando alias para
sus notaciones registrados en archivos XML.
Acceso a sesiones. Los servlets pueden crear y eliminar una sesin, adems de
que pueden acceder a ella para registrar informacin.
Capa de Control. En el patrn de desarrollo Model View Controller, los servlets
son usados en la capa de control.

Ing. Wagner Vicente Ramos

Ventajas de los Servlet


-

Eficientes: threads en lugar de procesos.


Convenientes: Mltiples utilidades de alto nivel.
Potente: Permiten compartir datos, persistencia.
Portables: Corren en mquinas virtuales.
Baratos: Servidores de aplicaciones gratuitos.
Seguros: No shells, no overflows, autocontenidos.

Interaccin con el Cliente


Cuando un servlet acepta una llamada de un cliente, recibe dos objetos.
1. HttpServletRequest
Representa la comunicacin desde el cliente hacia el servidor. El flujo de entrada
ser del tipo ServletInputStream y permite acceder a la cabecera HTTP y a los
datos del cliente y que el servidor podr usar.
2. HttpServletResponse
Representa la comunicacin desde el servidor hacia el cliente, donde el flujo ser
del tipo ServletOutputstream. Adems, permite que el servidor enve informacin
en diversos formatos al Cliente.

Ciclo de Vida de un Servlet


1.
2.

3.
4.

El cliente solicita una peticin a un servidor va URL.


El servidor recibe la peticin.
a. Si es la primera vez, se utiliza el motor de Servlets para cargarlo y se llama al
mtodo init().
b. Si ya est iniciado, cualquier peticin se convierte en un nuevo hilo. Un Servlet
puede manejar mltiples peticiones de clientes.
Se llama al mtodo service() pasando los objetos request y response.
Cuando se apaga el motor de un Servlet se llama al mtodo destroy() que lo
destruye y libera los recursos abiertos.

Ing. Wagner Vicente Ramos

Ejemplo demoServlet
Servlet que informar sobre el IP del cliente conectado a nuestro Site.
1. Crear un nuevo proyecto.
Archivo / Nuevo Proyecto

Ing. Wagner Vicente Ramos

Ing. Wagner Vicente Ramos

Agregar un Nuevo tipo de Archivo Servlet


Clic derecho sobre el nombre del proyecto (demoServlet)
Seleccionar Nuevo / Servlet.

Ing. Wagner Vicente Ramos

Ing. Wagner Vicente Ramos

Despus de retirar algunos comentarios, este sera el contenido de nuestro


servlet informa:
package controlador;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletInforma extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String cliente = request.getRemoteAddr();
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet Informa</title>");
out.println("</head>");
out.println("<body>");
out.println("<h3> Cliente: " + cliente + "</h3>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
7

Ing. Wagner Vicente Ramos

Observe que los mtodos doGet() y doPost() redireccionan los objetos request y
response al mtodo processRequest(). Esto es til, pues no sabemos que mtodo usar
el cliente para comunicarse con el servlet.
La estructura de archivos en el proyecto es:

El archivo web.xml de configuracin del proyecto tiene:

Las lneas [3 6] especifica que controlador.Servlet (nuestro servlet) se llamar


ServletInforma.
Las lneas [8 11] especifica que ServletInforma se ejecutar desde la raz del proyecto
en el browser.
Las lneas [19 21] indican que la ejecucin del proyecto empieza por index.jsp
La lnea 15 indica que la sesin estar activa por 30 minutos.
8

Ing. Wagner Vicente Ramos

Finalmente, el contenido de index.jsp ser:

En la lnea 11 se llamar al servlet desde la raz del proyecto y con el alias ServletInforma.

Ing. Wagner Vicente Ramos

10

Ing. Wagner Vicente Ramos

Vous aimerez peut-être aussi