init-param et context-param
Quelle est la différence entre <init-param>
et <context-param>
!?
- Cette question ne traite de la différence entre ces deux paramètres.. C'est juste sur les propriétés chargé dans les deux contextes..
- Je me suis arrêté au titre, de mon mauvais.
Vous devez vous connecter pour publier un commentaire.
<init-param>
et<context-param>
sont des paramètres statiques qui sont stockés dans web.xml fichier. Si vous avez des données qui ne change pas souvent que vous pouvez le stocker dans l'un d'eux.Si vous souhaitez stocker des données en particulier, qui se limite à un particulier servlet portée, alors vous pouvez utiliser
<init-param>
.Tout ce que vous déclarez à l'intérieur de<init-param>
n'est accessible que pour cette servlet.Le init-param est déclaré à l'intérieur de la<servlet>
tag.et vous pouvez accéder à ces paramètres dans la servlet comme suit:
Si vous souhaitez stocker des données qui est commun à ensemble de l'application et si elle ne change pas souvent que vous pouvez utiliser
<context-param>
au lieu deservletContext.setAttribute()
méthode du contexte de l'application. Pour plus d'informations sur l'utilisation de<context-param>
VSServletContext.setAttribute()
jetez un oeil à cette question. context-param sont déclarées en vertu de la baliseweb-app
.Vous pouvez déclarer et de l'accès à la
<context-param>
comme suitL'utilisation de l'application dans une page JSP, Servlet ou
<init-param>
:ServletContext::setInitParameter(String name, String value)
mais pas un seul pour le réglage d'un paramètre de contexte<context-param>
.Envisager la définition ci-dessous web.xml
Vous pouvez voir que init-param est définie à l'intérieur d'une servlet élément. Cela signifie qu'il n'est disponible que pour la servlet en vertu de la déclaration et non à d'autres parties de l'application web. Si vous voulez que ce paramètre à la disposition des autres parties de la demande de dire un JSP cela doit être explicitement transmis à la JSP. Par exemple passé en tant que demande.setAttribute(). C'est très inefficace et difficile à coder.
Donc, si vous voulez obtenir l'accès aux valeurs universelles, à partir de n'importe où dans l'application, sans explicitement en transmettant ces valeurs, vous devez utiliser Contexte d'Initialisation des paramètres.
Envisager la définition suivante à l'web.xml
Ce contexte param est disponible à toutes les parties de l'application web et il peut être récupéré à partir de l'objet de Contexte. Par exemple, getServletContext().getInitParameter(“dbname”);
À partir d'une page JSP, vous pouvez accéder au paramètre de contexte à l'aide de l'application implicite de l'objet. Par exemple, l'application.getAttribute(“dbname”);
J'ai initialisé mon
PersistenceContext.xml
dans<context-param>
parce que tous mes servlets serez en interaction avec la base de données en MVC.Cependant,
dans le code mentionné ci-dessus, je suis à la configuration de jersey et la
ApplicationContext.xml
seulement au reste de la couche. Pour les mêmes je suis l'aide de</init-param>
<init-param>
sera utilisée si vous souhaitez initialiser un certain nombre de paramètres pour une servlet. Lors de la demande de venir à la servlet d'abord par soninit
méthode sera appelée alorsdoGet/doPost
tandis que si vous voulez initialiser certaines variables pour l'ensemble de l'application, vous aurez besoin d'utiliser<context-param>
. Chaque servlet auront accès à la variable de contexte.Unique servlet contre plusieurs servlets.
D'autres Réponses dans les détails, mais voici le résumé:
Une application web, c'est un “contexte”, est composé de un ou plusieurs servlets.
<init-param>
définit une valeur disponibles à un spécifique unique servlet dans un contexte.<context-param>
définit une valeur disponibles à toutes les servlets dans un contexte.