ServletConfig vs ServletContext

Quelle est la différence entre l’interface ServletConfig et ServletContext ?

Les parameters ServletConfig sont spécifiés pour un servlet particulier et sont inconnus des autres servlets. Il est utilisé à des fins d’initialisation.

Les parameters ServletContext sont spécifiés pour une application entière en dehors de tout servlet particulier et sont disponibles pour tous les servlets de cette application. Son application a une scope et est donc accessible globalement sur toutes les pages.

Source: Différence entre ServletConfig et ServletContext en Java

ServletConfig

  • ServletConfig disponible dans javax.servlet.*; paquet

  • ServletConfig object ServletConfig est un par classe de servlet

  • L’object de ServletConfig sera créé lors du processus d’initialisation du servlet

  • Cet object Config est public uniquement pour un servlet particulier

  • Portée: Tant qu’un servlet est en cours d’exécution, l’object ServletConfig sera disponible, il sera détruit une fois l’exécution du servlet terminée.

  • Nous devrions demander explicitement, afin de créer ServletConfig object ServletConfig pour la première fois

  • Dans web.xml – la apparaîtra sous la

Voici comment cela se présente sous web.xml: ( Source )

  ServletConfigTest com.stackoverflow.ServletConfigTest  topic Difference between ServletConfig and ServletContext   

ServletContext

  • ServletContext disponible dans javax.servlet.*; paquet

  • ServletContext object ServletContext est global pour l’application Web entière

  • L’object de ServletContext sera créé au moment du déploiement de l’application Web

  • Portée : Tant que l’application Web est en cours d’exécution, l’object ServletContext sera disponible et il sera détruit une fois l’application retirée du serveur.

  • ServletContext object ServletContext sera disponible avant même de donner la première requête. Dans web.xml – la apparaîtra sous la

Voici comment cela se présente sous web.xml:

  globalVariable com.stackoverflow  

Donc enfin …….

Nombre d’applications Web = Ce nombre d’objects ServletContext [1 par application Web]
Nombre de classes de servlets = Ce nombre d’objects ServletConfig

Différence entre ServletContext et ServletConfig dans Servlets JSP au format tabulaire ( Source )

entrer la description de l'image ici

ServletConfig est implémenté par le conteneur de servlets pour initialiser un seul servlet à l’ aide d’init (). En d’autres termes, vous pouvez transmettre les parameters d’initialisation au servlet à l’aide du descripteur de déploiement web.xml. Pour comprendre, cela est similaire à un constructeur dans une classe Java.

ServletContext est implémenté par le conteneur de servlets pour que tous les servlets communiquent avec son conteneur de servlets, par exemple pour obtenir le type MIME d’un fichier, obtenir des demandes de répartition ou pour écrire dans un fichier journal. Cela permet d’obtenir des détails sur son environnement d’exécution. Il est applicable uniquement dans une seule machine virtuelle Java. Si une application Web est dissortingbuée entre plusieurs JVM, cela ne fonctionnera pas. Pour plus de compréhension, il s’agit d’un mécanisme de variable globale d’application pour une seule application Web déployée dans une seule JVM.

Source: http://javapapers.com/servlet/difference-between-servletconfig-and-servletcontext/

Cela répond dans le texte introductif de leurs javadocs.

ServletConfig javadoc:

Objet de configuration de servlet utilisé par un conteneur de servlet pour transmettre des informations à un servlet lors de l’initialisation.

ServletContext javadoc:

Définit un ensemble de méthodes qu’un servlet utilise pour communiquer avec son conteneur de servlets, par exemple, pour obtenir le type MIME d’un fichier, envoyer des demandes ou écrire dans un fichier journal.

Il existe un contexte par “application Web” par machine virtuelle Java. (Une “application Web” est un ensemble de servlets et de contenus installés sous un sous-ensemble spécifique de l’espace de noms du serveur, tel que / catalog et éventuellement installé via un fichier .war.)

Dans le cas d’une application Web marquée “dissortingbué” dans son descripteur de déploiement, il y aura une instance de contexte pour chaque machine virtuelle. Dans ce cas, le contexte ne peut pas être utilisé comme emplacement pour partager des informations globales (car les informations ne seront pas vraiment globales). Utilisez plutôt une ressource externe comme une firebase database.

L’object ServletContext est contenu dans l’object ServletConfig , que le serveur Web fournit au servlet lors de l’initialisation du servlet.

Le javadoc contient également une liste des méthodes disponibles avec une explication de leur utilisation. Il donne un bon aperçu de tout ce qui est disponible / possible avec eux.

Le conteneur de servlets créera deux contextes de servlet d’object et de configuration de servlet. Le contexte de servlet est public, c’est-à-dire que les données stockées sous le contexte Servlet avec webxml sont disponibles pour tous les servlets et qu’il n’ya qu’un object de contexte de servlet dans une application alors que la configuration de servlet est privée . est disponible pour un servlet particulier uniquement et il peut y avoir n nombre d’objects de configuration de servlet

Exemple (si nous avons 3 fichiers de servlets dans l’application, il y aura 3 objects de configuration de servlet).

entrer la description de l'image ici

Objets ServletContext et ServletConfig sur le serveur

Dans le cadre du serveur Web, de nombreuses applications Web résident à l’intérieur du serveur. Pour chaque application Web, le serveur est responsable de la création d’un object, c’est-à-dire d’un object de contexte de servlet. Il est également appelé object d’application.

Objet ServletConfig

Dans le cadre de chaque application Web, nous créerons un nombre N de servlets. Pour chaque servlet, un object sera créé par le serveur, à savoir l’object ServletConfig.

ServletConfig est destiné à un servlet particulier et est utile dans la méthode init (ServletConfig x) ou peut être utilisé avec la méthode getServletConfig (). Il est utilisé si nous devons obtenir des informations spécifiques au servlet. Par exemple: les informations de rappel de servlet sur les informations relatives à l’access à la firebase database peuvent utiliser ServletConfig car ces informations ne sont requirejses que pour ce servlet particulier.

Cependant, ServletContext est pour toute l’application. Il est utilisé lorsque nous avons besoin de partager des informations entre certains / tous les servlets / jsp dans une application Web particulière. On peut y accéder en utilisant la méthode getServletConfig (). GetServletContext () de Servlet. Par exemple: Servlet / JSP utilisé pour compter le nombre d’utilisateurs ayant accédé à votre site Web.

ServletConfig est utilisé pour partager les parameters d’initialisation spécifiques à un servlet alors que ServletContext est utilisé pour partager les parameters d’initialisation dans n’importe quelle Servlet au sein d’une application Web.

entrer la description de l'image ici

Différence :

 .--------------------------------------------------.----------------------------------------------------------------------------------------------. | 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 atsortingbutes in ServletConfig object. | We can set atsortingbutes in ServletContext that other servlets can use in their implementation. | '--------------------------------------------------'----------------------------------------------------------------------------------------------' 

ServletContext interface ServletContext représente la vue Servlets de l’application Web à laquelle elle appartient. ServletContext présent dans ServeltConfig .

Chaque ServletConfig a ServletConfig object ServletConfig , utilisé pour accéder à initParameters à l’aide de la méthode getServeletConfig() .

Généralement, les deux sont utilisés pour l’initialisation Mais une autre principale différence est que vous voulez utiliser des variables ou des champs pour toute l’application dont vous avez besoin pour initialiser le temps de chargement de web.xml si une option est ServletContext

Et si vous souhaitez utiliser certaines variables uniquement dans un servlet, vous devez utiliser ServletConfit.