Los servlets se agrupan en el árbol Java avanzado que se utilizan para crear aplicaciones web dinámicas. Los servlets son robustos por naturaleza , bien escalables y se utilizan principalmente en el desarrollo de aplicaciones del lado del servidor . Si retrocedemos un poco en el tiempo, podríamos ser testigos de que antes de la introducción de los servlets, se usaba CGI (Common Gateway Interface) . Entre varias tareas autóctonas que un servlet es capaz de realizar, las requests y respuestas dinámicas de los clientes son las más comunes. Otras tareas que un servlet puede realizar con eficacia son:
- Puede administrar/controlar fácilmente el flujo de la aplicación.
- Adecuado para implementar la lógica de negocios.
- Puede equilibrar efectivamente la carga en el lado del servidor.
- Genere fácilmente contenido web dinámico.
Hablando de los tipos de servlets, hay principalmente dos tipos, a saber:
- Servlets genéricos
- Servlets HTTP
Hay tres formas potenciales en las que podemos emplear para crear un servlet:
- Implementación de la interfaz de servlet
- Extendiendo el Servlet Genérico
- Ampliación del servlet HTTP
Componentes de la Arquitectura Servlet
A continuación se muestra el diagrama de arquitectura de alto nivel del servlet. Veamos en breve, cómo se suma cada componente al funcionamiento de un servlet.
1. Cliente
El cliente que se muestra en la arquitectura anterior funciona principalmente como un medio que envía requests HTTP al servidor web y nuevamente procesa la respuesta que recibe del servidor. Como podemos ver en el diagrama, nuestro cliente aquí es el navegador web.
2. Servidor web
El trabajo principal de un servidor web es procesar las requests y respuestas que un usuario envía a lo largo del tiempo y mantener cómo un usuario web podría acceder a los archivos que se han alojado en el servidor. El servidor del que estamos hablando aquí es un software. Existen precisamente dos tipos de servidores web:
- servidor web estático
- servidor web dinámico
3. Contenedor web
El contenedor web es otro componente típico en la arquitectura de servlets que es responsable de comunicarse con los servlets. Dos tareas principales de un contenedor web son:
- Gestión del ciclo de vida del servlet
- Mapeo de URL
El contenedor web se encuentra en el lado del servidor administrando y manejando todas las requests que provienen de los servlets o de algunas páginas JSP o potencialmente de cualquier otro sistema de archivos.
¿Cómo fluye una solicitud de servlet?
Cada servlet debe anular los siguientes 3 métodos, a saber:
- en eso()
- Servicio()
- destruir()
Estos métodos se utilizan para procesar la solicitud del usuario.
Los siguientes son los pasos en los que fluye una solicitud a través de un servlet que se pueden observar en el diagrama de arquitectura:
- El cliente envía una solicitud.
- El servidor web acepta la solicitud y la reenvía al contenedor web.
- Para obtener la dirección del servlet, el contenedor web rastrea el archivo web.xml correspondiente al patrón de URL de solicitud.
- En el momento en que se lleva a cabo el proceso anterior, el servlet debería haber sido instanciado e inicializado. Si el servlet no ha sido instanciado e inicializado, se invoca el método init() para cumplir el propósito.
- Al pasar el objeto ServletRequest y Response , el contenedor llama al método public service() .
- En el siguiente paso, los objetos ServletRequest y ServletResponse se convierten a objetos HttpServletRequest y HttpServletResponse mediante el método public service() .
- Ahora el método service() protegido es llamado por el método service() público .
- El método de servicio protegido() envía la solicitud al método de controlador correcto según el tipo de solicitud
Ventajas
- La funcionalidad principal de un servlet es que son independientes de la configuración del servidor y son bastante compatibles con cualquiera de los servidores web.
- Los servlets también son independientes del protocolo y admiten al máximo los protocolos FTP , HTTP , SMTP , etc.
- Hasta que se destruyan manualmente, los servlets se pueden retener en la memoria para ayudar a procesar varias requests a lo largo del tiempo. Además, una vez que se establece una conexión con la base de datos, puede facilitar el procesamiento de varias requests de una base de datos en la misma sesión de la base de datos.
- Los servlets heredan la propiedad de portabilidad de Java y, por lo tanto, son compatibles con casi cualquier servidor web.
- Los servlets se convierten primero en códigos de bytes y luego se ejecutan, lo que ayuda a aumentar el tiempo de procesamiento.
Desventajas
- Diseñar un servlet puede ser bastante laborioso.
- Las excepciones deben manejarse al diseñar un servlet, ya que no son seguras para subprocesos.
- Los desarrolladores pueden necesitar habilidades adicionales para programar un servlet.
Como ya sabemos, los servlets son portátiles (plataforma/servidor independientes) por naturaleza y, por lo tanto, son una mejor opción si hablamos en términos de otros lenguajes de secuencias de comandos. Procesan las requests y respuestas de forma dinámica. Siempre que estamos desarrollando una aplicación web en la que necesitamos coordinarnos con diferentes protocolos existentes, los servlets son preferibles a otros medios debido a su capacidad para admitir varios protocolos. Por fin podemos llegar a la conclusión de que emplear un servlet podría ser potencialmente más adecuado al desarrollar una aplicación web.
Publicación traducida automáticamente
Artículo escrito por shahzaibanwarkhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA