一个Servlet程序会定义一些配置信息,例如:Servlet的名称,Servlet上下文对象,Servlet的初始化参数。这些信息都被抽象成了一个ServletConfig接口,ServletConfig接口中定义了四个方法,分别是:getServletName()、getServletContext()、getInitParameter()、getInitParameterNames()。下面分别来说下每一个方法的作用。
注意:GenericServlet抽象类已经实现了ServletConfig接口,并且还拓展了更多的方法,所以HttpServlet也就自然继承了ServletConfig接口的方法,直接通过this调用对应的方法就可以啦。
1.1、getServletName()方法
getServletName()方法作用:获取当前Servlet的名称,这个名称就是在web.xml配置文件中通过
package com.gitcode.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @version 1.0.0
* @Date: 2024/3/4 22:20
* @Author ZhuYouBin
* @Description:
*/
public class GetServletName extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取当前Servlet的名称
String servletName = this.getServletName();
System.out.println("当前Servlet的名称是:" + servletName);
}
}
在web.xml配置文件中,添加如下配置:
工程名称
工程描述
自定义的Servlet名称
com.gitcode.servlet.GetServletName
1
自定义的Servlet名称
/getServletName
运行结果如下所示:
1.2、getServletContext()方法
getServletContext()方法作用:获取当前Servlet的上下文对象,返回一个ServletContext对象,该对象是全局共享的,也就是说,所有的Servlet都是共享这个ServletContext上下文对象。通过该对象,可以实现在不同Servlet程序之间数据的访问。后续介绍ServletContext对象的常用方法。
1.3、getInitParameterNames()方法
getInitParameterNames()方法作用:获取当前Servlet中配置的所有初始化参数名称。初始化参数名称就是在web.xml配置文件中,通过
在web.xml配置文件中,添加一些初始化参数:
工程名称
工程描述
InitParamNamesServlet
com.gitcode.servlet.InitParamNamesServlet
username
Tom
password
123456
InitParamNamesServlet
/initParamNamesServlet
运行结果如下所示:
1.4、getInitParameter()方法
getInitParameter()方法作用:根据指定的初始化参数名称,获取当前Servlet中对应的参数值。
package com.gitcode.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;
/**
* @version 1.0.0
* @Date: 2024/3/4 22:20
* @Author ZhuYouBin
* @Description:
*/
public class InitParamServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取指定参数名称的初始化参数值
Enumeration initParameterNames = this.getInitParameterNames();
while (initParameterNames.hasMoreElements()) {
String paramName = initParameterNames.nextElement();
System.out.println("参数名称:" + paramName + ",参数值:" + this.getInitParameter(paramName));
}
}
}
web.xml配置文件中的初始化参数和前面的相同,运行结果如下所示:
1.5、getServletInfo()方法
getServletInfo()方法作用:获取当前这个Servlet的描述信息,实际开发中没有啥作用,了解一下即可。在GenericServlet抽象类中,该类已经将getServletInfo()方法实现,并且默认返回空字符串了,代码如下所示:
所以,如果你想要获取当前这个Servlet的描述信息,就需要重写getServletInfo()方法,自定义返回描述信息的内容。到此,ServletConfig配置类就差不多介绍完啦。
今天就到这里,未完待续~~