Web容器为每个Servlet创建一个ServletConfig
对象。该对象可用于从web.xml
文件中读取配置信息。
只需要修改web.xml文件中的配置信息,而无需编辑servlet
文件修改。因此,如果不时修改任何特定内容,则更易于管理Web应用程序。
1. ServletConfig的优点
ServletConfig的主要优点是:只需要修改web.xml文件中的配置信息,而无需编辑servlet
文件修改。
2. ServletConfig接口的方法
public String getInitParameter(String name)
– 返回指定参数名称的参数值。public Enumeration getInitParameterNames()
– 返回所有初始化参数名称的枚举。public String getServletName()
– 返回servlet
的名称。public ServletContext getServletContext()
– 返回ServletContext
的对象。
3. 如何获取ServletConfig的对象
Servlet接口的getServletConfig()
方法返回ServletConfig
的对象。
getServletConfig()方法的语法:
public ServletConfig getServletConfig();
getServletConfig()方法的示例:
ServletConfig config=getServletConfig(); //Now we can call the methods of ServletConfig interface
Servlet提供初始化参数的语法
servlet的init-param
子元素用于指定servlet的初始化参数。代码片段如下所示:
<web-app> <servlet> ...... <init-param> <param-name>parametername</param-name> <param-value>parametervalue</param-value> </init-param> ...... </servlet> </web-app>
4. ServletConfig初始化参数示例
在此示例中,我们从web.xml文件中获得一个初始化参数,并将此信息打印在servlet中。
打开Eclipse,创建一个动态web项目:servletconfig,完整项目结构如下:
创建一个Servlet文件:DemoServlet.java
package com.xntutor.servlet; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class DemoServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); ServletConfig config = getServletConfig(); String driver = config.getInitParameter("driver"); out.print("Driver is: " + driver); out.close(); } }
文件: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"> <display-name>servletconfig</display-name> <servlet> <servlet-name>DemoServlet</servlet-name> <servlet-class>com.xntutor.servlet.DemoServlet</servlet-class> <init-param> <param-name>driver</param-name> <param-value>sun.jdbc.odbc.JdbcOdbcDriver</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>DemoServlet</servlet-name> <url-pattern>/servlet1</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
启动Tomcat服务器,打开浏览器访问下面URL:
得到以下结果:
5. 获取所有ServletConfig初始化参数
在此示例中,我们从web.xml文件中获取所有初始化参数,并将这些信息打印在servlet中。
创建一个Servlet文件:DemoServlet2.java
package com.xntutor.servlet; import java.io.IOException; import java.io.PrintWriter; 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 DemoServlet2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); ServletConfig config = getServletConfig(); Enumeration<String> e = config.getInitParameterNames(); String str = ""; while (e.hasMoreElements()) { str = e.nextElement(); out.print("<br>Name: " + str); out.print(" value: " + config.getInitParameter(str)); } out.close(); } }
文件: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"> <display-name>servletconfig</display-name> <servlet> <servlet-name>DemoServlet</servlet-name> <servlet-class>com.xntutor.servlet.DemoServlet2</servlet-class> <init-param> <param-name>username</param-name> <param-value>system</param-value> </init-param> <init-param> <param-name>password</param-name> <param-value>oracle</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>DemoServlet</servlet-name> <url-pattern>/servlet2</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
启动Tomcat服务器,打开浏览器访问下面URL:
得到以下结果:
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264040.html