2010-01-15 6 views
26

Die DD-Elemente <context-param> und <init-param> können beide mit der Methode getInitParameter() im Servlet-Code abgerufen werden.Unterschied s/w <context-param> und <init-param>

Jetzt ist die Frage, wie unterscheidet es <context-param> und <init-param>?

+0

Ich weiß nicht warum, aber ich stimme zu, dass es verwirrend und nervig ist. –

+0

Ich stimme zu, dass dies nicht einmal eine echte Frage ist. – Bombe

+1

"sind und aber in"? DD-Elemente? Warum ist dein Titel beschreibender als dein Körper? – pstanton

Antwort

43

Servlet Init-Parameter sind nur für ein einzelnes Servlet. Nichts außerhalb dieses Servlets kann darauf zugreifen. Es ist innerhalb der <servlet> Tag des Deployment Descriptor deklariert, auf der anderen Seite Context-Init-Parameter ist für die gesamte Web-Anwendung. Jedes Servlet oder JSP in dieser Webanwendung kann auf den Kontext-Initialisierungsparameter zugreifen. Die Kontextparameter werden in einem Tag <context-param> direkt innerhalb des Tags <web-app> deklariert.

Die Methoden zur Kontext INIT-Parameter Zugriff ist

getServletContext().getInitParameter("name"); 

während das Verfahren für den Zugriff auf Servlet INIT-Parameter ist

getServletConfig().getInitParameter("name"); 
1

Wie von Adeel Ansari, here, hängt es ab, welche Aufgabe sind Sie rufen die Methode getInitParameter() im Servlet-Code auf.

Alle Servlets erstrecken sich von und sind daher Instanz von GenericServlet.

.

ServletContext context = this.getServletContext(); 
String paramValue = context.getInitParamter("paramName"); 

:

DD Elemente <context-param> können abgerufen werden.

DD Elemente <init-param> beide können abgerufen werden:

ServletConfig config = this.getServletConfig(); 
String paramValue = config.getInitParamter("paramName"); 

Beachten Sie auch, dass seit GenericServlet Klasse implementiert ServletConfig Schnittstelle, Ihr Servlet-Klasse ist auch ServletConfig (impliziert this = this.getServletConfig()). Daher können Sie auch DD-Elemente <init-param> direkt erhalten von:

.

Sie können dies versuchen, indem Sie denselben Parameternamen in beiden DD-Elementen mit unterschiedlichen Werten eingeben und dann in Ihrem Servlet ausdrucken.