--------------------------- ServletConfig詳解----------------------------
ServletConfig
ServletConfig對象對應web.xml文件中的<servlet>元素。例如你想獲取當前Servlet在web.xml文件中的配置名,那麼可以使用servletConfig.getServletName()方法獲取!
你不能自己去創建ServletConfig對象,Servlet的init()方法的參數就是ServletConfig類型的。Tomcat在調用init()方法時,會傳遞ServletConfig對象。你可以在init()方法中使用它!
在<servlet>元素中還可以配置初始化參數:
<servlet> <servlet-name>One</servlet-name> <servlet-class> com.rl.servlet.OneServlet </servlet-class> <init-param> <param-name>paramName1</param-name> <param-value>paramValue1</param-value> </init-param> <init-param> <param-name>paramName2</param-name> <param-value>paramValue2</param-value> </init-param> </servlet> |
添加了兩個初始化參數,第一個參數的名稱爲paramName1,第一個參數的值爲paramValue1;第二個參數的名稱爲paramName2,第二個參數值爲paramValue2。
在<servlet>元素中可以加載多個<init-param>,每個<init-param>表示一個參數。<init-param>下有兩個子元素:<param-name>和<param-value>,其中<param-name>表示參數的名稱,而<param-value>元素參數的值。
注意,<init-param>是添加到<servlet>元素中,而不是<servlet-mapping>中。
使用ServletConfig對象的getInitParameter(String paramName)方法可以獲取指定參數名稱的參數值。getInitParameterNames()方法返回所有參數的名字,返回值類型爲Enumeration。
代碼示例:
package com.rl.servlet;
import java.io.IOException; import java.util.Enumeration;
import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
public class HttpServletDemo1 extends HttpServlet {
@Override public void init(ServletConfig config) throws ServletException { //從Servlet中獲得初始化的參數值 String username = config.getInitParameter("username"); System.out.println(username);
//獲得所有的參數名 Enumeration enums = config.getInitParameterNames(); while(enums.hasMoreElements()){ String name = (String)enums.nextElement(); String value = config.getInitParameter(name); System.out.println(value); } }
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
} |
Web.xml代碼
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<servlet> <servlet-name>HttpServletDemo1</servlet-name> <servlet-class>com.rl.servlet.HttpServletDemo1</servlet-class> <load-on-startup>1</load-on-startup> <init-param> <param-name>username</param-name> <param-value>123456</param-value> </init-param> <init-param> <param-name>password</param-name> <param-value>111111</param-value> </init-param> </servlet>
<servlet-mapping> <servlet-name>HttpServletDemo1</servlet-name> <url-pattern>/servlet/HttpServletDemo1</url-pattern> </servlet-mapping> </web-app> |