ServletConfig接口和ServletContext接口的区别

 ServletConfig接口(了解)

① ServletConfig (了解)
    一个Servlet对象对应唯一的一个ServletConfig配置对象
    ServletConfig对象如何获得?   在init方法的形参位置
        ServletConfig是在当前Servlet进行初始化的时候,传递给init方法的

public void init(ServletConfig config) throws ServletException

    功能:
        获取Servlet名称:web.xml中配置servlet-name的值
            servletConfig.getServletName();
        获取全局上下文ServletContext对象
            servletConfig.getServletContext();
        获取Servlet初始化参数
            设置servlet的初始化参数
            位置:web.xml的servlet标签内
            代码:
                <!--设置当前Servlet的初始化参数-->
                <init-param>
                    <param-name>path</param-name>
                    <param-value>classpath:springmvc.xml</param-value>
                </init-param>
            servletConfig.getInitParameter("path");  根据key值获得value值
            servletConfig.getInitParameterNames();  获得所有的key值

ServletConfig中的常用方法

ServletContext接口(熟悉)

全局上下文对象:一个web项目只有一个ServletContext对象
所有的Servlet共享同一个ServletContext对象
ServletContext对象是由服务器启动的时候,tomcat去创建的
如何获得到ServletContext对象:
    a. 通过ServletConfig去获得
        servletConfig.getServletContext();
    b. 通过request去获得
        servletRequest.getServletContext();

功能:
    //获取项目的上下文路径(带/的项目名)
        servletContext.getContextPath();   ★
    //获取虚拟路径所映射的本地真实路径
        servletContext.getRealPath("/upload");    后期上传下载会用到
    //获取WEB应用程序的全局初始化参数
        如何设置全局初始化参数
        位置:web.xml的根节点下
        代码:
            <!--设置全局初始化参数-->
            <context-param>
                <param-name>servletCntextInitParamKey</param-name>
                <param-value>servletCntextInitParamValue</param-value>
            </context-param>
        取值:
            servletContext.getInitParameter("ccc");
            servletContext.getInitParameterNames();
    //作为域对象共享数据  ★
        域对象:在一定的作用域范围内共享数据的对象
        ServletContext所用域范围是整个web项目
        测试:
            在一个Servlet内,往ServletContext对象中设置共享数据
            在另外一个Servlet内获取到共享的数据
        方法:
            servletContext.setAttribute(String key,Object obj);
            Object msg = servletContext.getAttribute(String key);
            servletContext.removeAttribute(String key);

ServletContext中的常用方法

ServletContext对应显示生活中的例子

 一个教室里有多个学生,那么每一个学生就是一个Servlet,这些学生都在同一个教室当中,那么我们可以把这个教室叫做ServletContext对象。那么也就是说放在这个ServletContext对象(环境)当中的数据,在同一个教室当中,物品都是共享的。比如:教室中有一个空调,所有的学生都可以操作。可见,空调是共享的。因为空调放在教室当中。教室就是ServletContext对象。

区别:

一、定义:

ServletConfig: 是Sevlet的配置对象,用来描述Servlet 的基本信息,容器在初始化Servlet 时通过它传递信息给Sevlet

ServletContext: 指上下文对象,提供了一系列方法Servlet 与Web容器交互

二、作用范围

ServletConfig :局部对象 ;ServletContext: 全局对象

ServletConfig 作用于某个Servle 实例,每个Servlet 都有对应的ServletConfig;

SevletContext 作用于整个Web应用,一个Web应用对应一个ServletContext,多个Servlet实例对应一个 ServletContext。

一、定义: 二、作用范围

选自https://blog.csdn.net/weixin_42468607/article/details/108546058


 


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值