2021-04-21 08:31  阅读(78)
文章分类:Servlet 简单教程 文章标签:Servlet
©  原文作者:一点教程 原文地址:http://www.yiidian.com/servlet/

Web容器为每个Servlet创建一个ServletConfig对象。该对象可用于从web.xml文件获取配置信息。

如果从web.xml文件修改了配置信息,则无需更改Servlet。因此,如果您可以把经常改变的参数配置到web.xml,通过ServletConfig对象来读取。

1 ServletConfig的好处

ServletConfig的核心优点是,如果在web.xml文件中修改了信息,则无需重新修改Servlet源码文件。

2 ServletConfig的方法

  1. public String getInitParameter(String name):返回指定参数名称的参数值。
  2. public Enumeration getInitParameterNames():返回所有初始化参数名称的枚举。
  3. public String getServletName():返回Servlet的名称。
  4. public ServletContext getServletContext():返回ServletContext的对象。

3 获取ServletConfig对象

Servlet接口的getServletConfig()方法可以返回ServletConfig的对象。

    
    ServletConfig config = getServletConfig();  

4 使用ServletConfig读取参数

Servlet的init-param标签用于指定Servlet的初始化参数。

    
    <web-app>  
      <servlet>  
        ......  
          
        <init-param>  
          <param-name>parametername</param-name>  
          <param-value>parametervalue</param-value>  
        </init-param>  
        ......  
      </servlet>  
    </web-app> 

5 读取指定参数的案例

在下面示例中,我们从web.xml文件中获得一个初始化参数,并将此信息打印在Servlet中。

5.1 编写DemoServlet

    
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    /**
     * 一点教程网 - http://www.yiidian.com
     */
    public class DemoServlet extends HttpServlet{
    
        public void doGet(HttpServletRequest req,HttpServletResponse res)
                throws ServletException,IOException
        {
            res.setContentType("text/html;charset=utf-8");
            PrintWriter out = res.getWriter();
    
            ServletConfig config=getServletConfig();
            String driver=config.getInitParameter("driver");
            out.print("驱动名称: "+driver);
    
            out.close();
        }
    
    }

5.2 配置web.xml

    
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
    
        <servlet>
            <servlet-name>DemoServlet</servlet-name>
            <servlet-class>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>/demo</url-pattern>
       </servlet-mapping>
        
    
    </web-app>

5.3 运行测试

访问:http://localhost:8080/demo,效果如下:

202104210838_1.png

6 读取所有参数的案例

在下面示例中,我们从web.xml文件中获取所有初始化参数,并将此信息打印在Servlet中。

6.1 编写DemoServlet

    
    import java.io.*;
    import java.util.Enumeration;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    /**
     * 一点教程网 - http://www.yiidian.com
     */
    public class DemoServlet extends HttpServlet{
    
        public void doGet(HttpServletRequest req,HttpServletResponse res)
                throws ServletException,IOException
        {
            res.setContentType("text/html;charset=utf-8");
            PrintWriter out = res.getWriter();
    
            ServletConfig config=getServletConfig();
            Enumeration<String> e=config.getInitParameterNames();
    
            String str="";
            while(e.hasMoreElements()){
                str=e.nextElement();
                out.print("<br>参数名称: "+str);
                out.print("参数值: "+config.getInitParameter(str));
            }
    
            out.close();
        }
    
    }

6.2 配置web.xml

    
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
    
        <servlet>
            <servlet-name>DemoServlet</servlet-name>
            <servlet-class>DemoServlet</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>/demo</url-pattern>
       </servlet-mapping>
        
    
    </web-app>

6.3 运行测试

访问:http://localhost:8080/demo,效果如下:

202104210836_2.png

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> ServletConfig的使用
上一篇
使用Servlet请求重定向
下一篇
ServletContext的使用