讀完本文,你將了解(1)<context-param>的作用和用法,(2)<context-param>配置和<init-param>的區別
<context-param>的作用和用法:
1.<context-param>配置是是一組鍵值對,比如:
<context-param>
<param-name>home-page</param-name>
<param-value>home.jsp</param-value>
</context-param>
param-name是鍵,相當於就是參數名,param-value是值,相當於參數值
2.當服務器啟動時,服務器會讀取web.xml配置,當讀到<listener></listener>和<context-param></context-param>這兩個節點的時候,容器會將這兩個節點set到ServletContext(上下文對象)中,這樣我們在程序中就能通過這個上下文對象去取得我們這個配置值。
具體代碼實現:
String sHomePage = getServletContext().getInitParameter("home-page");
通過上面這句代碼,我們就可以取得web.xml中配置的home.jsp這個值。
說白了,他就相當於設定了一個固定值,我們可以在程序中去使用它。就這么個作用。
注:我看到很多文章都是把它和監聽一起說的,寫說這個配置在監聽中怎么用。我要說的他並不是為了監聽去設定的。程序中的所有servlet可以利用這個值,我在這里強調一下這一點,希望大家不要被誤導
<context-param>配置和<init-param>的區別:
<servlet>
<servlet-name>ServletInit</servlet-name>
<servlet-class>com.sunrain.datalk.wserver.util.servlet.ServletInit</servlet-class>
<init-param>
<param-name>home-page</param-name>
<param-value>home.jsp</param-value>
</init-param>
</servlet>
我們可以看到<init-param>是放在一個servlet內的,所以這個參數是只針對某一個servlet而言的
所以他們的區別就有點像全局變量和和局部變量的<context-param>是針對整個項目,所有的servlet都可以取得使用,<init-param>只能是在那個servlet下面
配置,就在那個servlet里面調用
轉載 ;http://blog.csdn.net/jixinhuluwa/article/details/48003203