<init-param>
和<context-param>
!有什么区别?init-param和context-param
回答
<init-param>
和<context-param>
是存储在web.xml文件中的静态参数。如果您有任何不经常更改的数据,则可以将其存储在其中一个中。
如果你想存储它仅局限于特定的servlet范围特定的数据,那么你可以使用<init-param>
.Anything声明里面<init-param>
是只能针对特定servlet.The访问的init-PARAM是在<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>
,你可以在servlet访问这些参数如下:
out.println(getInitParameter("Greetings"));
如果你想存储数据,是很常见的整个应用程序,如果不经常更改你可以使用<context-param>
而不是servletContext.setAttribute()
应用上下文的方法。欲了解更多关于使用<context-param>
VS ServletContext.setAttribute()
看看这question。 context-param在标签web-app
下声明。 可以声明并访问<context-param>
如下的应用
<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>
用法无论是在JSP或Servlet的
getServletContext().getInitParameter("Country");
getServletContext().getInitParameter("Age");
<init-param>
将被使用,如果你想初始化一个特定的servlet参数。当请求首先来到servlet时,其init
方法将被调用,然后调用doGet/doPost
,而如果要为整个应用程序初始化一些变量,则需要使用<context-param>
。每个servlet都可以访问上下文变量。
考虑在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>
下面的定义可以看到的init-param为一个servlet元素中定义。这意味着它仅适用于声明中的servlet,而不适用于Web应用程序的其他部分。如果你希望这个参数对应用程序的其他部分可用,比如一个JSP,这需要显式地传递给JSP。例如作为request.setAttribute()传递。这是非常低效且难以编码的。
因此,如果您希望从应用程序的任何位置访问全局值而不显式传递这些值,则需要使用Context Init参数。
考虑在web.xml
<web-app>
<context-param>
<param-name>myprop</param-name>
<param-value>value</param-value>
</context-param>
</web-app>
以下定义这个上下文参数是可用的web应用程序的所有部分并且它可以从语境对象进行检索。例如,getServletContext()。getInitParameter(“dbname”);
从JSP可以使用应用程序隐式对象访问上下文参数。例如,application.getAttribute(“dbname”);
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:/META-INF/PersistenceContext.xml
</param-value>
</context-param>
我已经内<context-param>
初始化我PersistenceContext.xml
,因为我的所有servlet将与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>
在上述代码
,我配置的球衣和ApplicationContext.xml
只休息层。对于我正在使用的</init-param>
- 1. 将InitParam添加到silverlight对象,从代码/ Javascript/jQuery
- 2. 在web.xml我有数据initparam我的意思是在上下文对象我需要获得这个上下文对象来获取肥皂中的数据
- 3. 在Gupshup IDE上制作http发布请求有效吗?
- 4. js上的FB-bot,gupshup
- 5. 来自非servlet的web.xml参数,外部JSF生命周期
- 6. 隐式对象应用程序可以在JSP 2.0中与EL一起使用吗?
- 7. 无法直接调用init/Context参数到jsp页面
- 8. 从下拉列表中保留选定的选项
- 9. event.stopPropagation在MinimizeEvent在ZK 7.1
- 10. PHP:OR和||和&&和
- 11. Gupshup Post - Empty Body
- 12. Java和Android和SharedPreferences和OOP
- 13. 删除基于子标签的标签和内容,并使用xsltproc在xml中添加新内容
- 14. 搜索和和&
- 15. lxml和CDATA和&
- 16. 使用Prism将InitParams读入服务
- 17. Spring和JSF和JPA
- 18. laravel OrderBy和总和
- 19. 分析仪 '&' 和 '和'
- 20. OR和和预期
- 21. Postpost和log4net和log4postsharp
- 22. MVC和Ajax.BeginForm和DIV.Load
- 23. Chrome和YouTube和AppleScript
- 24. WCF和XmlSerialization和XmlWriterSettings
- 25. 集团和总和
- 26. jquery和jScrollPane和ajax
- 27. Prism和TabControl和TabIndex
- 28. 梨和pirum和package.xml
- 29. PHP和IRC和壳
- 30. 基本总和和
@RC。这个问题没有 - 在哪里讨论这两个参数之间的区别..它只是关于在两个上下文中加载的属性。 – 2015-02-08 10:33:26
我停在标题,我的坏。 – 2015-02-08 10:36:31