ServletContext

通过 servletConfig的getServletContext获得


servlet技术中对象的生命周期

     servlet --->  项目启动期间一个servlet只有一个servlet实例

     servletConfig ---> 一个servlet实例对应一个servletConfig对象

     servletContext ---> 整个项目中,永远只有一个servletContext实例

     request ---> 项目启动期间,request对象的数量,要看当前有多少个请求正在处理

     response ---> 同上


servletContext的作用

    1>封装了web.xml中的配置

    2>ServletContext对应着Application(应用)域,利用一个项目中只有一个ServletContext实例的特点,在ServletContext中放置一个map用作数据通信.

            这个Map就是域

            关于域的操作有四个:

                    放入键值对 setAttribute(key,value)
                    通过键取值 getAttribute(key)
                    通过键删除 removeAttribute(key)
                    遍历所有键 getAttributeNames()

     3>获取项目中资源

               servletContext中的方法

                     getResourceAsStream(path)   //path填写相对路径    “/” 相对于项目根目录(WEBRoot)

                     getRealPath(path)  //path填写相对路径    “/”相对于项目根目录(WEBRoot)

               Class中的方法   this.getClass()

                      getResourceAsStream(path)    //  填“/”    classes目录下

                                                                             //不填“/”    当前class文件所在目录

               ClassLoader中的方法   this.getClass().getClassLoader()

                        getResourceAsStream(path)  //  无论填不填“/” 都相对于classes目录

注意: 使用类和类加载器加载资源文件时
                //1 jvm运行期间只加载一次. 但是使用下面的代码可以解决这个问题.
                    String path = this.getClass().getClassLoader().getResource("xxx.xml").getPath();
                    File file = new File(path.substring(1, path.length()));
                    System.out.println(path);
                //2 getClassLoader()原本是用来加载.class文件的, 所以缓存设计的很小.不要用他加载一些别较大的资源.



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值