Ciclo de vida del servlet en Java: métodos, arquitectura, comparación y configuración

Publicado: 2021-03-03

Tabla de contenido

Introducción

Los servlets producen un método que no solo está basado en componentes y es independiente de la plataforma, sino que también es muy útil para crear aplicaciones basadas en web. Los servlets tienen acceso a las API de Java y la API de JDBC para acceder a las bases de datos. En el caso de los Java Servlets, aunque no existen restricciones en cuanto al rendimiento del programa CGI (Common Gateway Interface), aún existen algunas desventajas.

¿Qué es Servlet?

Servlet es una tecnología que es muy beneficiosa para crear páginas web dinámicas. Actúa como una capa intermedia entre el navegador web y los clientes o servidores HTTP. Con la ayuda de los servlets, primero recopilamos las entradas de los usuarios y luego creamos páginas web dinámicamente. Servlet amplía las capacidades de los servidores y las aplicaciones de host. Los servlets amplían las capacidades de los servidores y también responden a cualquier tipo de solicitudes de los usuarios.

Fuente

CGI frente a servlets

Antes de los servlets, CGI se usaba ampliamente. CGI es una forma de pasar la solicitud recibida del usuario a un programa de aplicación. Aunque CGI es una forma para un servidor web, también obtiene la respuesta del navegador (cliente). Cuando el usuario solicita una página web al navegador, el servidor se la devuelve.

Cuando un cliente desea completar un formulario en una página web e intentar enviarlo nuevamente, el programa de aplicación lo procesa. El servidor pasa la información a un pequeño programa de aplicación web. Este programa primero procesa los datos y luego los devuelve a través de un mensaje de confirmación.

Resumen de los métodos del ciclo de vida de los servlets

Hay principalmente tres métodos de ciclo de vida de un servlet, que podemos describir como:

  1. en eso()
  2. Servicio()
  3. destruir()

Fuente

Arquitectura de servlets

  • En primer lugar, lee los datos enviados por los clientes. Luego, inserta un formulario HTML en una página web y luego envía las solicitudes enviadas por los clientes.
  • Después de eso, el servlet procesa los datos y se conecta a un sistema de gestión de bases de datos, ejecutando RMI invocando servicios web.
  • Después del procesamiento, los documentos se pueden enviar en formato de texto y gif.
  • Finalmente, envía el HTTP al cliente.

Fuente

Ahora discutiremos estos métodos en detalle.

1. inicializar()

El método init() se llama solo una vez después de crear la instancia del servlet. Al principio, inicializa el servlet. Servlet.init() indica que la instancia de servlet se creó correctamente.

La sintaxis del método init() se da como:

public void init (ServletConfig config) lanza ServletException {

// código de inicialización

}

2. servicio()

Cada vez que el servlet recibe la solicitud, el contenedor web llama al método service().

  • Para recabar los datos solicitados b
  • y el cliente, se utiliza el objeto de solicitud de servicio.
  • Para generar el contenido de salida, se utiliza el objeto ServletResponse.

La firma del método service() se da como:

servicio público vacío (solicitud de ServletRequest, respuesta de ServletREsponse)

lanza ServletEXception, IOException {

//solicitar código de manejo

}

El método service() usa doGet, doPost, doPut, doDelete y muchos otros métodos.

3. destruir()

El usuario llama al método destroy() al menos una vez en el ciclo de vida de un servlet . Se utiliza para terminar la conexión de la base de datos, para liberar la memoria y los recursos asignados. También ayuda con fines de limpieza, y la recolección de basura está asociada con esto.

La firma del método destroy() es

destrucción de vacío público () {

// código de finalización

}

Lea también: Servlet vs JSP

Configuración del entorno de un servlet

Para crear una aplicación Servlet, al principio, debemos seguir algunos pasos, como instalar Tomcat Server, que se describe a continuación:

1. Crear una estructura de directorio

Fuente

Primero, necesitamos crear la estructura de directorios anterior dentro de un directorio llamado Apache – directorio Tomcat\webapps. Necesitamos mantener todos los HTML, archivos estáticos e imágenes en la aplicación web creando una carpeta. Los servlets deben mantenerse en la carpeta de clase. Por último, el archivo web.xml debe estar en la carpeta WEB-INF.

2. Creando un Servlet

Hay tres formas diferentes en las que podemos crear un servlet.

  1. Implementando la interfaz Servlet.
  2. Extendiendo la clase GenericServlet.
  3. Es necesario ampliar la clase de servlet HTTP.

Un servlet se puede formar principalmente si podemos extender la clase abstracta httpServlet.

3. Compilando el Servlet

Para compilar el servlet, se requiere un archivo JAR:

  1. Al establecer el classpath.
  2. Pegando el jar en la carpeta JRE/lib/ext.

4. Crear descriptor de implementación

DD se puede definir como un archivo XML que utilizan los servidores web para que

pueden ejecutar servlets con facilidad. DD se utiliza para varios propósitos importantes.

  1. Mapeando la URL a la clase Servlet.
  2. Inicializando parámetros.
  3. Al definir la página de error.
  4. Por roles de seguridad.
  5. Al declarar bibliotecas de etiquetas.

5. Inicie el servidor

Para iniciar el servidor Apache Tomcat, debemos hacer doble clic en el archivo startup.bat en el directorio apache-tomcat/bin y comenzará a funcionar.

6. Iniciar el servidor Tomcat por primera vez

Para iniciar Tomcat Server por primera vez, debemos configurar JAVA_HOME en la variable de entorno. Los siguientes pasos se mencionan a continuación. Haga clic derecho en Mi PC , y tenemos que ir a Propiedades .

Fuente

  1. A continuación, iremos a la pestaña Avanzado y debemos hacer clic en el botón Variables de entorno .

Fuente

  1. Por lo tanto, haremos clic en el botón Nuevo e ingresaremos JAVA_HOME dentro del campo de texto Nombre de la variable y la ruta de JDK dentro del campo de texto Valor de la variable. Luego, debemos guardarlo haciendo clic en Aceptar.

Fuente

7. Ejecución de la aplicación de servlet

Cuando ejecutamos el botón de servlet, se verá como:

Después de abrir el navegador, debemos escribir http:localhost:8080/First/hello

Pago: salario de desarrollador de Java en la India

Interfaz de solicitud de servlet

ServletRequest tiene como objetivo proporcionar al cliente piezas auténticas de información sobre un servlet que

incluye tipo de contenido, longitud, valores de parámetros y muchos más.

Métodos

1. getAttribute(Cadena)

Devuelve el valor de los atributos solicitados, si los atributos no existen

luego devuelve NULL.

2. obtenerNombresDeAtributos()

Devuelve los nombres de los atributos presentes que son solicitados por los clientes.

3. getCharacterEncoding()

Devuelve un conjunto de caracteres.

4. obtenerLongitudContenido()

Devuelve el tamaño de la entidad de datos solicitada .

5. obtenerTipoContenido()

Al principio, solicita la identidad del objeto. Si no se encuentra, devuelve un valor NULL.

6. getInputStream()

Devuelve un flujo binario de datos recibidos por el cliente y luego devuelve las cadenas.

7. getParameter(Cadena)

Devuelve una cadena de los parámetros.

8. obtenerNombresDeParámetros()

Devuelve los nombres de los parámetros.

9. obtener valores de parámetros (cadena)

Devuelve los valores de los parámetros. Siempre existen en forma de cadena.

10. obtenerProtocolo()

Devuelve el protocolo y la versión en el formato <protocolo>/<versión principal>.<versión secundaria>.

11. getLector()

Devuelve un lector almacenado en búfer para leer el texto en el cuerpo de la solicitud.

12. obtenerRutaReal(Cadena)

evita la ruta virtual y devuelve la ruta real.

13. getRemoteAddr()

Devuelve la dirección IP.

14. obtenerHostRemoto()

Devuelve el nombre de host completamente estructurado del agente.

15. obtenerEsquema()

Devuelve la URL utilizada en la solicitud.

16. obtenerNombreServidor()

Devuelve el nombre de host del servidor.

17. obtenerPuertoServidor()

Devuelve el número de puerto.

18. setAttribute(Cadena, Objeto)

Este método acumula un atributo para cualquier tipo de solicitud.

Respuesta del servlet

ServletResponse invoca un objeto y se registra la respuesta de varios usuarios. El contenedor web es responsable de todas estas actividades. El paso para crear esto es muy importante. El paso es crear un objeto.

Ahora hablemos en detalle sobre ServletConfig y ServletContext a continuación.

ServletConfig

1. El contenedor web crea el objeto de configuración en función de los parámetros de inicialización.

2. Debe haber un ServletConfig por servlet.

Métodos

1. Igual (Objeto)

comprueba si el objeto actual tiene el mismo valor que el objeto dado.

2. Obtener código hash()

Funciona como la función hash predeterminada.

3. ObtenerTipo()

Devuelve el Tipo de la instancia actual.

4. MemberwiseClone()

Si invocamos este objeto, se puede crear una copia superficial. Hace referencia al objeto presente por defecto .

5. ToString()

Devuelve una cadena, que representa el objeto actual.

ServletContext

Analicemos ServletContext a continuación:

  1. Es muy necesario hacer que el objeto de referencia sea accesible para todos y cada uno de los servlets de la aplicación web.
  2. El objeto de referencia es en realidad la implementación en tiempo de ejecución de estos.

Los dos tipos de servlets se pueden definir como:

1. Servlets genéricos

Nos referimos a los servlets genéricos como independientes de los protocolos y, además, es necesario invocarlos anulándolos. Podemos invocar servlets genéricos de tres maneras:

  • Archivo HTML

Podemos crear un archivo HTML muy sencillo que puede parecerse a WebContent/index.html.

  • Archivo de clase Java

Se puede crear un servlet genérico ampliando la clase GenericServlet. Si podemos crear un nuevo archivo de clase simple, entonces podemos renombrarlo como genérico. La ruta del archivo es similar a:/javaResouces/src/default package/generic.java.

  • Archivo XML

Este archivo lo podemos encontrar en la ruta WebContent/WEB-INF/web.xml. Podemos mapear el servlet con una URL específica.

2. servlet HTTP

Este tipo de servlets no es más que una extensión de las clases Servlet. Aunque depende de HTTP, establece algunas reglas que ayudan a que el navegador web y los servidores se comuniquen, y el servlet HTTP también puede anular los métodos doGet() o doPost(). Además, puede anular ambos métodos.

Ventajas de los servlets

Ahora veamos algunas ventajas de los servlets:

  1. El rendimiento es sobresaliente.
  2. Los servlets pueden ejecutarse dentro del espacio de direcciones de un servidor. Como resultado, podemos decir que no es necesario crear un espacio de direcciones separado para manejar la solicitud del cliente.
  3. Son independientes de la plataforma y se basan principalmente en componentes.
  4. Los servlets están protegidos ya que el administrador de seguridad establece algunas restricciones para proteger los recursos y los datos.
  5. Mientras trabajan, los usuarios no necesitan preocuparse por liberar memoria como una técnica de asignación de basura.
  6. Los servlets brindan una funcionalidad completa ya que todas las bibliotecas están disponibles. Puede comunicarse fácilmente con applets y otros mecanismos.

Fuente

Desventajas de los servlets

Las limitaciones de los servlets se discuten como:

  1. Solo se puede cargar un servlet en la JVM a la vez. Entonces, podemos decir que importa la cantidad de solicitudes.
  2. Cuando hay una solicitud, solo puede haber un hilo. Ningún proceso debe estar presente allí.
  3. Diseñar un servlet es costoso y, a veces, es bastante problemático.
  4. Necesitamos otras configuraciones en el navegador como JRE (Java Runtime Environment) en el servidor para ejecutar servlets.

Lea también: Ideas y temas de proyectos Java

Aprenda cursos de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión

En esta era moderna del mundo digital, la tecnología e internet se han convertido en el motor de todo. Internet está inquieto. Cada segundo, está ocupado para transferir grandes cantidades de datos.

Pero debido a la transferencia masiva de datos, Internet se ralentiza, ya que también necesitamos velocidad. Entonces, los sitios dinámicos son creados por desarrolladores de software. Estos sitios se modifican y actualizan en todo momento. Para obtener más información sobre los servlets en Java y el desarrollo, consulte el programa Executive PG de upGrad en desarrollo de software de pila completa y comience su viaje.

El motivo principal de este artículo es proporcionar a los lectores un concepto básico de los servlets para que puedan obtener una idea fundamental sobre los servlets.

Aterrice en el trabajo de sus sueños

Solicite ahora el programa Executive PG en Full Stack Development