Servlet之ServletContext对象

一、概念

ServletContext代表是一个Web应用的环境(上下文)对象,ServletContext对象内部封装是该Web应用的信息,一个Web应用都只有一个ServletContext对象这个对象全局唯一,而且工程内部的所有Servlet都共享这个对象

二、生命周期

1.创建

服务器启动的时候,会为托管的每一个web应用程序,创建一个ServletContext对象

2.销毁

Web应用从服务器移除托管,或者是关闭服务器

三、作用

1.是一个域对象(存取数据)

所有的域对象都有如下方法

方法说明

setAttribute(name,value)

往域对象里面添加数据,添加时以key-value形式添加

getAttribute(name)根据指定的key读取域对象里面的数据
removeAttribute(name)根据指定的key从域对象里面删除数据

 2.可以读取web.xml配置中的全局配置参数

       web.xml中的全局参数,因为不属于任何一个servlet,所以所有Servlet共享

    <!--  全局参数:所有servlet共享 -->
    <context-param>
        <param-name>address</param-name>
        <param-value>湖南长沙</param-value>
    </context-param>
public class ServletContextTest extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response){
        //获取上下文对象
        ServletContext context = this.getServletContext();
        String address = context.getInitParameter("address");
        System.out.println("address="+address);
    }
}

3.根据相对路径获取当前工程目录下某文件的绝对路径 

getRealPath默认会获取当前工程在tomcat里面的根目录

    //获取上下文对象
    ServletContext context = this.getServletContext();
    //根据相对路径获取服务器上资源的绝对路径
    String  path = context.getRealPath(相对于该web应用的相对路径);

1.this.getClass().getClassLoader().getResource("");

获取的是当前工程在tomcat里面的 根目录(项目名称).../WEB-INF/classes/

2.this.getServletContext().getRealPath("");

获取的是当前工程在tomcat里面的 根目录(项目名称)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值