Qual è la differenza tra <init-param>
e <context-param>
!?init-param e context-param
risposta
<init-param>
e <context-param>
sono i parametri statici che sono memorizzati nel file web.xml. Se si dispone di dati che non cambiano frequentemente, è possibile memorizzarli in uno di essi.
Se si desidera memorizzare i dati particolare che si limita solamente ad un particolare ambito servlet, quindi è possibile utilizzare <init-param>
.Anything dichiari dentro <init-param>
è accessibile solo solo per quel particolare servlet.The init-param è dichiarato all'interno del tag <servlet>
.
<servlet>
<display-name>HelloWorldServlet</display-name>
<servlet-name>HelloWorldServlet</servlet-name>
<init-param>
<param-name>Greetings</param-name>
<param-value>Hello</param-value>
</init-param>
</servlet>
ed è possibile accedere a tali parametri nella servlet come segue:
out.println(getInitParameter("Greetings"));
Se si desidera memorizzare i dati che è comune a tutta l'applicazione e se non cambia di frequente si può utilizzare <context-param>
anziché il metodo servletContext.setAttribute()
del contesto dell'applicazione. Per ulteriori informazioni sull'utilizzo di <context-param>
VS ServletContext.setAttribute()
dai un'occhiata a questo question. context-param sono dichiarati sotto il tag web-app
. È possibile dichiarare e accedere al <context-param>
come segue
<web-app>
<context-param>
<param-name>Country</param-name>
<param-value>India</param-value>
</context-param>
<context-param>
<param-name>Age</param-name>
<param-value>24</param-value>
</context-param>
</web-app>
Uso nell'applicazione o in una JSP o Servlet
getServletContext().getInitParameter("Country");
getServletContext().getInitParameter("Age");
<init-param>
verrà utilizzato se si desidera inizializzare alcuni parametri per un particolare servlet. Quando la richiesta arriva prima al servlet, verrà chiamato il suo metodo init
quindi doGet/doPost
mentre se si desidera inizializzare alcune variabili per l'intera applicazione sarà necessario utilizzare <context-param>
. Ogni servlet avrà accesso alla variabile di contesto.
consideri la definizione di seguito in web.xml
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>TestServlet</servlet-class>
<init-param>
<param-name>myprop</param-name>
<param-value>value</param-value>
</init-param>
</servlet>
Si può vedere che init-param è definito all'interno di un elemento servlet. Ciò significa che è disponibile solo per il servlet sotto dichiarazione e non per altre parti dell'applicazione Web. Se si desidera che questo parametro sia disponibile per altre parti dell'applicazione, indicare un JSP che deve essere passato esplicitamente al JSP. Per esempio passato come request.setAttribute(). Questo è altamente inefficiente e difficile da codificare.
Quindi, se si desidera ottenere l'accesso ai valori globali da qualsiasi punto all'interno dell'applicazione senza passare esplicitamente tali valori, è necessario utilizzare i parametri di Context Init.
Si consideri la seguente definizione in web.xml
<web-app>
<context-param>
<param-name>myprop</param-name>
<param-value>value</param-value>
</context-param>
</web-app>
Questo parametro contesto è a disposizione di tutte le parti dell'applicazione web e può essere recuperato dall'oggetto Context. Ad esempio, getServletContext(). GetInitParameter ("dbname");
Da un JSP è possibile accedere al parametro di contesto utilizzando l'oggetto implicito dell'applicazione. Ad esempio, application.getAttribute ("dbname");
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:/META-INF/PersistenceContext.xml
</param-value>
</context-param>
ho inizializzato il mio PersistenceContext.xml
entro <context-param>
perché tutti i miei servlet interagiranno con database in framework MVC.
Howerver,
<servlet>
<servlet-name>jersey-servlet</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:ApplicationContext.xml
</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.organisation.project.rest</param-value>
</init-param>
</servlet>
nel codice di cui sopra, Sto configurando maglia e l'ApplicationContext.xml
solo strato di riposo. Per lo stesso sto usando </init-param>
- 1. Numero di revisione SVN e data e ora
- 2. Ottieni i dati di configurazione da web.xml quando usi una maglia ServletContainer
- 3. JSON e e JSON E
- 4. e vs * e | vs +
- 5. Sostituire "#", "$", "%", "&" e "_" con "\ #", "\ $", "\%", "\ &" e "\ _"
- 6. CSS "e" e "o"
- 7. Funzionalità e Linux e Java
- 8. python se condizione e "e"
- 9. Che cosa è e = e | =
- 10. CQRS e notifica e-mail
- 11. Controlli WPF e Silverlight e funzionalità di panoramica e zoom
- 12. Prestazioni e ordinamento e distinti unici tra mysql e php
- 13. Comprendere l'operatore PHP e (e commerciale, bit a bit e)
- 14. Qual'è la differenza tra -E sed e sed -e
- 15. Bash - Elenca e ordina i file e le loro dimensioni e per nome e dimensione
- 16. Infissi e selenio e rotaie (oh mio?)
- 17. NServiceBus e NHibernate - Message Handler e transazioni
- 18. Boost.Python e CMake collegare e caricare errori
- 19. funzione statica e variabile statica e variabile
- 20. Sed e Awk in uscita e commerciale (&)
- 21. ice_cube e ricorrenti gemme e occorrenze
- 22. Localizzazione e datiAnnotazioni. GlobalResourceProxyGenerator e PublicResxFileCodeGenerator
- 23. getComputedStyle() e cssText in IE e Firefox
- 24. viewWillTransitionToSize e navigazione errataBar e statusBarFrame heights
- 25. E-mail di ritorno FacebookSDK e Swift
- 26. CloudBees e App Cellule, istanze e piscine
- 27. JS angolare e direttiva Link e timeout $
- 28. Sottraendo uint e int e costante ripiegamento
- 29. Bzero() e bcopy() contro memset() e memcpy()
- 30. Pacchetti spazio nomi e installazione pip -e
@RC. Quella domanda no-where discute la differenza tra quei due parametri .. Si tratta solo di proprietà caricate nei due contesti .. –
Mi sono fermato al titolo, il mio male. –