原视频地址:https://www.bilibili.com/video/BV1vb41187jH?p=23
javax.servlet.ServletConfig`是接口
Apache Tomcat
服务器实现了Servlet规范,Tomcat服务器专门写了一个ServletConfig
接口的实现类,实现类的完整类名是org.apache.catalina.core.StandardWrapperFacade
【了解】javaweb
程序员在编程的时候,一直是面向ServletConfig
接口去完成调用,不需要关心具体的实现类。webapp
放在Tomcat
服务器中,ServletConfig
的实现类是org.apache.catalina.core.StandardWrapperFacade
,webapp
放在JBOSS
服务器中,ServletConfig
的实现类可能是另一个类名了。所有这些实现类,我们都不需要关心,只需要学习ServletConfig
接口中有哪些可以使用的方法。Tomcat服务器是一个实现了Servlet规范和JSP规范的容器
ServletConfig
接口中有哪些常用的方法。String getInitParameter(String name)
:通过初始化参数的name获取value
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22//.java文件
public void service(ServletRequest request, ServletResponse response) {
// 输出到浏览器页面上
response.setContentType("text/html;charset = UTF-8");
PrintWriter out = response.getWriter();
// 获取ServletConfig
ServletConfig config = getServletConfig();
String driver = config.getInitParameter("driver");
String url = config.getInitParameter("url");
String user = config.getInitParameter("user");
String password = config.getInitParameter("password");
out.print(driver);
out.print("<br>");
out.print(url);
out.print("<br>");
out.print(user);
out.print("<br>");
out.print(password);
}
Enumeration getInitParameterNames()
: 获取所有初始化参数的name
1 | // .java文件 |
ServletContext getServletContext()
:获取ServletContext
【Servlet上下文】对象1
2
3
4
5
6
7
8
9
10
11
12
13// .java文件
public void service(ServletRequest request, ServletResponse response) {
// 输出到浏览器页面上
response.setContentType("text/html;charset = UTF-8");
PrintWriter out = response.getWriter();
ServletConfig config = getServletConfig();
// 获取servletName
ServletContext application = config.getServletContext();
out.print(application.toString()); // org.apache.catalina.core.ApplicationContextFacade@46ea8
}
}String getServletName()
: 获取<servlet-name>servletname</servlet-name>
1
2
3
4
5
6
7
8
9
10
11
12
13// .java文件
public void service(ServletRequest request, ServletResponse response) {
// 输出到浏览器页面上
response.setContentType("text/html;charset = UTF-8");
PrintWriter out = response.getWriter();
ServletConfig config = getServletConfig();
// 获取servletName
String servletName = config.getServletName();
out.print("<servlet-name>" + servletname + "</servlet-name>")
}
}
web.xml
文件中:
1 | <servlet> |
ServletConfig
是什么ServletConfig
是一个Servlet
对象的配置信息对象,ServletConfig
对象中封装了一个Servlet
对象的配置信息。Servlet
对象的配置信息在web.xml
中- 一个
Servlet
对象对应一个ServletConfig
对象,100个Servlet
对象对应100个ServletConfig
对象
- 将
init
方法上的ServletConfig
参数移动到service方法中,因为主要使用的是service方法,在service方法中可能使用到ServletConfig
- 在
init
方法中完成,局部变量config
赋值给实例变量config
- 实现
getServletConfig
方法,提供公开的get方法,目的是供子类使用
- 在
1 | public class AServlet implements Servlet { |