ServletContext接口

在Tomcat服务器中的Web的项目,也叫做Web应用程序,应用程序也是对象。
在JavaWeb开发中,使用ServletContext对象表示Web应用程序。


ServletContext对象特性

  1. 在一个Web应用程序中,只能存在一个ServletContext对象
  2. 每个应用程序都有它自己所对应的一个ServletContext对象
  3. 服务器启动时,为每个Web应用程序创建一个单独的ServletContext对象
  4. ServletContext接口, 此接口的实现类是Tomcat引擎提供

获取ServletContext对象方法

首先一个Web应用程序只有一个ServletContext对象

方法一
通过ServletConfig接口获取,它提供了方法 getServletContext()

public interface ServletConfig {
    ServletContext getServletContext();
}

方法二
通过继承的HttpServlet类的父类GenericServlet获取,GenericServlet类提供了方法getServletContext()

class Context1Servlet extends HttpServlet {}public abstract class HttpServlet extends GenericServlet{public abstract class GenericServlet implements Servlet,ServletConfig, Serializable {
    //⽤transient关键字标记的成员变量不参与序列化过程。
    private transient ServletConfig config;
    public ServletConfig getServletConfig() {
        return this.config;
    }
    public ServletContext getServletContext() {
        return this.getServletConfig().getServletContext();
    }
//省略其他
}

Servlet代码

protected void doGet(HttpServletRequest request, HttpServletResponse
            response) throws ServletException, IOException {
        //⽅式1:通过ServletConfig对象获取,它提供了⽅法 getServletContext()
        ServletConfig config = super.getServletConfig();
        ServletContext servletContext = config.getServletContext();
        System.out.println("servletContext = " + servletContext);
        //⽅式2:常用方法,通过继承的HttpServlet类的⽗类GenericServlet获取, GenericServlet类
        提供了⽅法 getServletContext ()
        ServletContext servletContext2 = super.getServletContext();
        System.out.println("servletContext2 = " + servletContext2);
    }

ServletContext对象的作用

  1. 获取Web应用程序的初始化参数
    web.xml配置Web应用程序的初始化参数
    <!--配置的是WEB程序的初始化参数-->
    <context-param>
        <param-name>java</param-name><!--键 -->
        <param-value>servlet</param-value><!--值 -->
    </context-param>

API

方法返回值描述
getInitParameter(String name)String获取Web应用程序的初始化参数
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /*
        * 获取ServletContext对象
        * ⽗类的⽅法
        * org.apache.catalina.core.ApplicationContextFacade实现接⼝
        ServletContext
        */
        ServletContext context = getServletContext();
        System.out.println(context);
        //context对象,获取配置⽂件中的初始化参数
        String value = context.getInitParameter("java");
        System.out.println(value);
    }

在这里插入图片描述
可能遇到的问题解决方案

  1. 获取Web应用程序下任意资源的绝对路径
  2. ServletContext作为域对象,存储数据(共享信息etc.)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值