在JSP和Servlet中有時候需要讀取web.xml的初始化參數,比如可以用于設置JNDI的數據源的名字。下面簡單介紹下在JSP和Servlet中怎么讀取web.xml的初始化參數。
一、在Servlet中讀取:
在Servlet中一般可以用ServletConfig對象的getInitParameter方法去讀取指定的參數的值。舉個例子:
新建一個Servlet:ReadInitParameter.java
并在web.xml中增加如下配置:
<servlet>
<servlet-name>ReadInitParameter</servlet-name>
<servlet-class>com.test.ReadInitParameter</servlet-class>
<init-param>
<param-name>email</param-name>
<param-value>qiyadeng@haha.com</param-value>
</init-param>
<init-param>
<param-name>name</param-name>
<param-value>qiyadeng</param-value>
</init-param>
</servlet>
<servletclass>com.test.ReadInitParameter</servlet-class>是servlet的完整路徑,包括包名。
配置好了web.xml,現在可以在程序中讀取初始化的參數了。在init(ServletConfig config)方法中傳遞了一個ServletConfig參數,可以這樣獲取初始化參數:
public void init(ServletConfig config) throws ServletException
{
super.init(config);
String email = config.getInitParameter("email");
String name = config.getInitParameter("name");
}
在其他的方法中象doGet(),doPost(),service()方法中可以用getServeltConfig()方法得到一個ServetConfig對象,在利用該對象的getInitParameter()方法取到對應的初始化參數。
String email = getServletConfig().getInitParameter("email");
String name= getServletConfig().getInitParameter("name");
二、在JSP中讀取:
在JSP中讀取的方式和Servlet中的doGet(),doPost(),Service()的方法一樣,都是由ServletConfig對象來讀取的。
<%
String zhutou = getServletConfig().getInitParameter("zhutou");
String zhutouname = getServletConfig().getInitParameter("zhutouname");
%>
但是,在web.xml的配置需要注意一下,新增如下:
<servlet>
<servlet-name>ReadInitParam</servlet-name>
<jsp-file>ReadInitParam.jsp</jsp-file>
<init-param>
<param-name>zhutou</param-name>
<param-value>zhutou@hotmail.com</param-value>
</init-param>
<init-param>
<param-name>zhutouname</param-name>
<param-value>zhutou</param-value>
</init-param>
</servlet>
在servlet-mapping中也要配置好:
<servlet-mapping>
<servlet-name>ReadInitParam</servlet-name>
<url-pattern>ReadInitParam.jsp</url-pattern>
</servlet-mapping>
上面的ReadInitParam.jsp出現的標簽需要jsp文件的全部路徑。