什么是ServletContext
1.servletcontext是一个接口,它表示servlet的上下文对象
2.一个web工程中,只有一个servletcontext对象实例
3.servletcontext是一个域对象。
什么是域对象
域对象,是可以想map一样存取对象的对象
这里的域对象是存取数据的范围
存数据 取数据 删除数据
Map put() get() remove()
域对象 setAttribute() getAttribute() removeAttribute()
servletcontext的四个作用
1.获取web.xml中配置的上下文参数context-param
2.获取当前的工程路径,格式:/工程路径
3.获取工程部署后在服务器硬盘上的绝对路径
4.像map一样存取数据
使用servletcontext
1.获取web.xml中配置的上下文参数context-param
1.创建contextservlet类
package com.xiaochen.pojo;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
public class ContextServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1.获取web.xml中配置的上下文参数context-param
ServletContext servletContext = getServletConfig().getServletContext();
String username = servletContext.getInitParameter("username");
System.out.println("username的值是:"+username);
// 2.获取当前的工程路径,格式:/工程路径
// 3.获取工程部署后在服务器硬盘上的绝对路径
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
2.在配置文件中web.xml中设置param的值
<servlet>
<servlet-name>ContextServlet</servlet-name>
<servlet-class>com.xiaochen.pojo.ContextServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ContextServlet</servlet-name>
<url-pattern>/contextServlet</url-pattern>
</servlet-mapping>
<context-param>
<param-name>username</param-name>
<param-value>context</param-value>
</context-param>
2.获取当前的工程路径,格式:/工程路径
3.获取工程部署后在服务器硬盘上的绝对路径
ServletContext Context = getServletConfig().getServletContext(); System.out.println("当前工程路径"+ Context.getContextPath()); System.out.println(Context.getRealPath("/"));
4.像map一样存取数据
ServletContext servletContext = getServletContext();//第二种获取servletcontext对象的方法 servletContext.setAttribute("key1","value1"); System.out.println("context中key1的值是:"+servletContext.getAttribute("key1"));
servletcontext在web工程部署的时候启动,在web工程停止时销毁。