前言:
Servlet的作用:
- Servlet 是接口,是 JavaEE 规范之一。接口起到了规范的作用。
- Servlet 是 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。
- Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。
- 也就是说Servlet接口的实现类等待着Tomcat服务器来调用类中的方法,这个地方运用到了java中的多态。
一. ServletConfig接口的作用
知识点:
- ServletConfig接口的实现类 是 Servlet 程序的配置信息类。
- Servlet 程序和 ServletConfig 对象都是由 Tomcat 负责创建,我们负责使用。
- Servlet 程序默认是第一次访问的时候才创建,ServletConfig 是每个 Servlet 程序创建时,就创建一个对应的 ServletConfig 对象。
作用:
- 可以获取 Servlet 程序的别名 servlet-name 的值
- 获取初始化参数 init-param
- 获取 ServletContext 对象
如下:
ps:
可能大家会有如下疑问,为什么如下截图的两个方法都可以取得ServletContext类的对象
这是因为getServletContext()
方法内部也是调用了config.getServletContext()
,我们可以点进getServletContext()
方法体,如下:
web.xml内容如下:
输出结果:
二.ServletContext接口的作用
知识点:
- ServletContext它表示 Servlet 上下文对象
- 一个 web 工程,只有一个 ServletContext 对象实例。
- ServletContext 对象是一个域对象。(域对象,是可以像 Map 一样存取数据的对象,叫域对象。 这里的域指的是存取数据的操作范围,整个 web 工程。)
- ServletContext接口的实现类 是在 web 工程部署启动的时候由Tomcat创建。在 web 工程停止的时候就销毁。
作用:
- 获取 web.xml 中配置的上下文参数 context-param
- 获取当前的工程路径,格式: /工程路径
- 获取工程部署后在服务器硬盘上的绝对路径
- 像 Map 一样存取数据
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext servletContext = getServletContext();
//获取 web.xml 中配置的上下文参数 context-param
System.out.println(servletContext.getInitParameter("contextName01"));
//获取当前的工程路径,格式: /工程路径
System.out.println(servletContext.getContextPath());
//获取工程部署后在服务器硬盘上的绝对路径
System.out.println(servletContext.getRealPath("/"));
//像 Map 一样存取数据
servletContext.setAttribute("key1","value1");
System.out.println(servletContext.getAttribute("key1"));
}
web.xml部分内容: