Todos los servidores poseen dos grandes responsabilidades:
- Manejar las peticiones de los clientes (programación a nivel de sockets, extraer información de los mensajes de petición, implementar los protocolos cliente-servidor, etc.)
- Crear una respuesta para devolverla al cliente.
La mejor manera de dar soporte a estas dos responsabilidades es dividir el código en dos ejecutables separados (por un lado el servidor en sí, y por otro las extensiones del mismo). En java las extensiones del servidor se desarrollan utilizando la API de Servlets, y estos módulos son denominados servlets.
Servlet Container (Administrador o Contenedor de Servlets)
Los servidores web utilizan un modulo separado para cargar y ejecutar los Servlets. Este modulo especializado (que se dedica a la administración de los servlets) es denominado Servlet Container. Cuando se realiza una petición a un servidor web, si el recurso solicitado es activo (un servlet o una JSP), el servidor delega la petición al servlet container. Si el recurso es pasivo (una página HTML, una imagen, etc.) es el servidor web (a través del sistema de archivos) el que se encarga de manejar la petición.
El Servlet Container es parte del servidor web, pero este puede ser clasificado en tres tipos:
Servlet Container (Administrador o Contenedor de Servlets)
Los servidores web utilizan un modulo separado para cargar y ejecutar los Servlets. Este modulo especializado (que se dedica a la administración de los servlets) es denominado Servlet Container. Cuando se realiza una petición a un servidor web, si el recurso solicitado es activo (un servlet o una JSP), el servidor delega la petición al servlet container. Si el recurso es pasivo (una página HTML, una imagen, etc.) es el servidor web (a través del sistema de archivos) el que se encarga de manejar la petición.
El Servlet Container es parte del servidor web, pero este puede ser clasificado en tres tipos:
- Standalone: Son servidores web basados en Java. El servidor web y el servlet container son partes de un solo programa.
- In-process: El servidor web y el servlet container son programas diferentes, pero el contenedor se ejecuta dentro del espacio de memoria del servidor web, como un plug-in.
- Out-of-process: El servidor web y el servlet container son programas diferentes, pero el servidor web se ejecuta en un proceso mientas que el contenedor de servlets se ejecuta en un proceso distinto.
La API de Servlets
La API está dividida en dos paquetes:
javax.servlet: Contiene las interfaces y clases genéricas de los servlets, que son independientes del protocolo.
La API está dividida en dos paquetes:
javax.servlet: Contiene las interfaces y clases genéricas de los servlets, que son independientes del protocolo.
- Interface java.servlet.Servlet
- Clase java.servlet.GenericServlet
- Interface java.servlet.ServletRequest
- Interface java.servlet.ServletResponse
javax.servlet.http: Contiene la funcionalidad básica requerida por los servlets HTTP. Es decir, contiene las implementaciones específicas para el protocolo HTTP de las clases e interfaces del paquete java.servlet.
- Clase java.servlet.http.HttpServlet: Extiende de java.servlet.GenericServlet.
- Interface java.servlet.http.HttpServletRequest: Extiende de java.servlet.ServletRequest.
- Interface java.servlet.http.HttpServletResponse: Extiende de java.servlet.ServletResponse.
Buenas. Interesante es tu aporte teórico.
Te invito a que sigas agregando más notas.
Y desde luego, trataré de aportar algo.
Saludos.
Gabrielus
10 de diciembre de 2009, 11:49Gracias Mulator!
Sin duda voy a seguir, ya tengo varias cosas listas para ir subiendo y también algo de código que estoy usando.
Cualquier aporte será bienvenido!
Saludos y gracias de nuevo por el comentario.
Matías Emiliano Alvarez Durán
10 de diciembre de 2009, 16:23