简介:
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()); // 获取下一个元素再打印
}
}
写完后启动服务器,使用浏览器访问:
发现输出了对应的值。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)