servlets servletconfig

servlets - ServletConfig vs ServletContext



(11)

ServletConfig es implementado por el contenedor de servlets para inicializar un solo servlet usando init (). Es decir, puede pasar los parámetros de inicialización al servlet utilizando el descriptor de despliegue web.xml. Para entender, esto es similar a un constructor en una clase java.

ServletContext es implementado por el contenedor de servlets para que todos los servlets se comuniquen con su contenedor de servlets, por ejemplo, para obtener el tipo MIME de un archivo, para obtener solicitudes de despacho o para escribir en un archivo de registro. Eso es para obtener detalles sobre su entorno de ejecución. Es aplicable solo dentro de una única máquina virtual Java. Si una aplicación web se distribuye entre varias JVM, esto no funcionará. Para su comprensión, esto es como un mecanismo variable global de la aplicación para una sola aplicación web implementada en una sola JVM.

Fuente: Source

¿Cuál es la diferencia entre ServletConfig y la interfaz ServletContext ?


El contenedor del servlet creará dos objetos Servlet context y Servlet Config. El contexto del servlet es público, es decir, los datos que almacenamos en el contexto del servlet usando webxml están disponibles para todos los servlets y solo hay un objeto de servlet en una aplicación, mientras que en el caso de servlet config es privado, es decir, los datos que almacenamos en el contexto del servlet usando webxml está disponible solo para servlets particulares y puede haber n cantidad de objetos de configuración de servlet

Ejemplo (si tenemos 3 archivos servlet en la aplicación, habrá 3 objetos de configuración de servlets).


En general, ambos se utilizan para fines de inicialización. Pero uno de los principales es que se desea usar alguna variable o campos para la aplicación completa que necesita para inicializar el tiempo de carga de web.xml que tiene una opción es ServletContext

Y si quiere usar alguna variable solo en un servlet particular, entonces necesita usar ServletConfit.


Eso está respondido en el texto introductorio de sus javadocs.

ServletConfig javadoc:

Un objeto de configuración de servlet utilizado por un contenedor de servlets para pasar información a un servlet durante la inicialización.

ServletContext javadoc:

Define un conjunto de métodos que un servlet usa para comunicarse con su contenedor de servlets, por ejemplo, para obtener el tipo MIME de un archivo, despachar solicitudes o escribir en un archivo de registro.

Hay un contexto por "aplicación web" por máquina virtual Java. (Una "aplicación web" es una colección de servlets y contenido instalado en un subconjunto específico del espacio de nombres URL del servidor como / catalog y posiblemente instalado a través de un archivo .war).

En el caso de una aplicación web marcada como "distribuida" en su descriptor de implementación, habrá una instancia de contexto para cada máquina virtual. En esta situación, el contexto no puede usarse como una ubicación para compartir información global (porque la información no será verdaderamente global). Use un recurso externo como una base de datos en su lugar.

El objeto ServletContext está contenido dentro del objeto ServletConfig , que el servidor web proporciona al servlet cuando se inicializa el servlet.

El javadoc también contiene una lista de métodos disponibles junto con una explicación de su uso. Proporciona una buena visión general de todo lo disponible / posible con ellos.


Fuente: Diferencia entre ServletConfig y ServletContext en Java

ServletConfig

  • ServletConfig disponible en javax.servlet.*; paquete

  • ServletConfig objeto ServletConfig es uno por clase de servlet

  • El objeto de ServletConfig se creará durante el proceso de inicialización del servlet

  • Este objeto Config es público solo para un servlet particular

  • Alcance: mientras se esté ejecutando un servlet, el objeto ServletConfig estará disponible, se destruirá una vez que se complete la ejecución del servlet.

  • Deberíamos dar una solicitud explícita, para crear un objeto ServletConfig por primera vez

  • En web.xml, la etiqueta <init-param> aparecerá debajo de la etiqueta <servlet-class>

Así es como se ve en web.xml: ( Source )

<servlet> <servlet-name>ServletConfigTest</servlet-name> <servlet-class>com..ServletConfigTest</servlet-class> <init-param> <param-name>topic</param-name> <param-value>Difference between ServletConfig and ServletContext</param-value> </init-param> </servlet>

ServletContext

  • ServletContext disponible en javax.servlet.*; paquete

  • ServletContext objeto ServletContext es global para toda la aplicación web

  • El objeto de ServletContext se creará en el momento de la implementación de la aplicación web

  • Ámbito de aplicación : siempre que la aplicación web se esté ejecutando, el objeto ServletContext estará disponible y se destruirá una vez que la aplicación se elimine del servidor.

  • ServletContext objeto ServletContext estará disponible incluso antes de dar la primera solicitud En web.xml - la etiqueta <context-param> aparecerá bajo la etiqueta <web-app>

Así es como se ve en web.xml:

<context-param> <param-name>globalVariable</param-name> <param-value>com.</param-value> </context-param>

Así que finalmente…….

Nº de aplicaciones web = Esa cantidad de objetos ServletContext [1 por aplicación web]
Nº de clases de servlet = Esa cantidad de objetos ServletConfig

Diferencia entre ServletContext y ServletConfig en Servlets JSP en formato tabular ( Source )


Los parámetros ServletConfig se especifican para un servlet particular y son desconocidos para otros servlets. Se usa para fines de inicialización.

Los parámetros de ServletContext se especifican para una aplicación completa fuera de cualquier servlet en particular y están disponibles para todos los servlets dentro de esa aplicación. Tiene alcance de aplicación y, por lo tanto, acceso global a través de las páginas.


ServletConfig es para un Servlet particular, y es útil en el método init (ServletConfig x), o se puede usar mediante el método getServletConfig (). Se usa si necesitamos obtener alguna información específica del servlet. Por ejemplo: el servlet que recupera información sobre la información relacionada con el acceso a la base de datos puede usar ServletConfig ya que esta información es necesaria solo para ese servlet en particular.

Sin embargo, ServletContext es para toda la aplicación. Se usa cuando necesitamos compartir información entre algunos / todos los servlets / jsp en una aplicación web particular. Se puede acceder utilizando el método getServletConfig (). GetServletContext () de Servlet. Por ejemplo: Servlet / JSP utilizado para contar cuántos usuarios han accedido a su sitio web.


ServletConfig se usa para compartir parámetros de inicio específicos de un servlet, mientras que ServletContext sirve para compartir parámetros de inicio dentro de cualquier servlet dentro de una aplicación web.


Diferencia:

.--------------------------------------------------.----------------------------------------------------------------------------------------------. | ServletConfig | ServletContext | :--------------------------------------------------+----------------------------------------------------------------------------------------------: | Unique object per servlet | Unique object for complete application | :--------------------------------------------------+----------------------------------------------------------------------------------------------: | Used to provide init parameters to the servlet | Used to provide application level init parameters that all other servlets can use. | :--------------------------------------------------+----------------------------------------------------------------------------------------------: | We can’t set attributes in ServletConfig object. | We can set attributes in ServletContext that other servlets can use in their implementation. | ''--------------------------------------------------''----------------------------------------------------------------------------------------------''


ServletContext interfaz ServletContext representa la vista Servlets de la aplicación web a la que pertenece. ServletContext presente dentro de ServeltConfig .

Cada servlet tiene un objeto ServletConfig , utilizado para acceder a los parámetros de inicio utilizando el método getServeletConfig() .


ServletContext y ServletConfig Objetos en el servidor

Como parte de los servidores web, muchas aplicaciones web residirán en el lado del servidor. Para el servidor de aplicaciones web evry es responsable de crear un objeto, es decir, un objeto de contexto de servlet. También se llama como objeto de aplicación.

Objeto ServletConfig

Como parte de cada aplicación web, crearemos N número de servlets. Por cada sevlet, un objeto será creado por el servidor, es decir, el objeto ServletConfig.