ServletConfig接口

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,完整项目结构如下:
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:

得到以下结果:

ServletConfig接口

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:

得到以下结果:

ServletConfig接口

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264040.html

(0)
上一篇 2022年6月6日
下一篇 2022年6月6日

相关推荐

发表回复

登录后才能评论