随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。

简介:

public interface ServletConfig
public ServletConfig getServletConfig() {
        System.out.println("getServletConfig()。。。。");
        return null;
    }

Servlet中的ServletConfig接口:获取配置信息;

一个ServletConfig对象对应的是一段的<servlet>信息,例如web.xml中有一段信息:

<servlet>
        <servlet-name>AServlet</servlet-name>
        <servlet-class>cn.mlcd.servlet.AServlet</servlet-class>
    </servlet>

那么就有一个ServletConfig对象来获取其中AServlet的信息,

如果还有一段:

<servlet>
        <servlet-name>BServlet</servlet-name>
        <servlet-class>cn.mlcd.servlet.AServlet</servlet-class>
    </servlet>

那么就还有一个ServletConfig对象来获取其中BServlet的信息。

ServletConfig:

NO

方法名

参数

返回

作用

1
public java.lang.String getServletName()
String 类型 当前Servlet的名称
2
public ServletContext getServletContext()
ServletContent 类型 获取Servlet上下文对象
 3
public java.lang.String getInitParameter(java.lang.String name)
 String 类型 String 类型   通过名称获取指定初始化参数的值
 4  
public java.util.Enumeration getInitParameterNames()
 无  
Enumeration 类型
获取所有初始化参数的名称 

有这么一个对应关系:

 

 

如果要获取 v1 的值,那么就需要 ServletConfig的实例化对象调用 getInitParameter() 方法,并且传入参数 "p1" 那么就会返回 v1 的值了

那么如果调用的是getInitParameterNames()方法呢:返回的就是一个枚举集合,集合中有 p1 和 p2 ;

Enumeration:

 

 

NO

方法名

参数

返回值

作用

1 public boolean hasMoreElements() boolean 判断是否还有下一个元素
2
public E nextElement()
E 返回下一个元素

 

代码实现:

在web.xml配置文件中写入初始化参数:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    version="4.0">
    <servlet>
        <servlet-name>AAA</servlet-name>
        <servlet-class>cn.mlcd.servlet.AServlet</servlet-class>
        <init-param>
            <param-name>p1</param-name>
            <param-value>v1</param-value>
        </init-param>
        <init-param>
            <param-name>p2</param-name>
            <param-value>v2</param-value>
        </init-param>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>AAA</servlet-name>
        <url-pattern>/AServlet</url-pattern>
    </servlet-mapping>


</web-app>

在init()方法中获取初始化的参数值:

/**
     * 生命周期方法
     * 在Servlet对象创建后马上调用一次!(出生后的初始化)
     */
    @Override
    public void init(ServletConfig config) 
            throws ServletException {
        System.out.println("init()。。。。");
        /**
         * 获取初始化参数
         */
        System.out.println(config.getInitParameter("p1"));
        System.out.println(config.getInitParameter("p2"));
        Enumeration<String> names = config.getInitParameterNames();
        while(names.hasMoreElements()) {// 有下一个元素
            System.out.println(names.nextElement());    // 获取下一个元素再打印
        }
    }

写完后启动服务器,使用浏览器访问:

 发现输出了对应的值。

 

posted on 2022-04-04 16:25  时间完全不够用啊  阅读(114)  评论(0编辑  收藏  举报