zoukankan      html  css  js  c++  java
  • ServletContex对象学习

    问题:

      不同的用户使用相同的数据

    解决:

      ServletContext对象

    特点:

      服务器创建

      用户共享

    作用域:

      整个项目内

    生命周期

      服务器启动到服务器关闭

    使用:

        1.获取SercvletContext对象

        //第一种

       ServletContext sc=this.getServletContext(); 

        //第二种

        ServletContext sc2=this.getServletConfig().getServletContext(); 

        //第三种

       ServletContext sc3=req.getSession().getServletContext(); 

      2.使用ServletContext对象完成数据共享

        //数据存储 

      sc.setAttribute(String name, Object value); 

        //数据获取

       sc.getAttribute("str") 返回的是Object类型 

        注意:

           不同的用户可以给ServletContext对象进行数据的存取。

           获取的数据不存在返回null

      3.获取项目中的web.xml文件中的全局配置数据

       sc.getInitParameter(String name); 根据键的名字返回web.xml中配置的全局数据的值,返回String类型。如果数据不存在返回null   

       sc.getInitParameterNames();返回键名的枚举 

     配合方式:注意 一组<context-param>标签只能存储一组键值对数据,多组可以声明多个  <context-param>进行存储。

       作用:将静态数据和代码进行解耦。

    <context-param>
        <param-name>name</param-name>
        <param-value>zhangsan</param-value>
    </context-param>

      4.获取项目webroot下的资源的绝对路径。

       String path=sc.getRealPath(String path);  获取的路径为项目根目录,path参数为项目根目录中的路径

      5.获取webroot下的资源的流对象。

       InputStream is = sc.getResourceAsStream(String path); 

      注意:
      此种方式只能获取项目根目录下的资源流对象,class文件的流对象需要使用类加载器获取。
      path参数为项目根目录中的路径

      6..显示目录下的资源

       Set<String> paths = sc.getResourcePaths(); 

  • 相关阅读:
    21.栈的压入、弹出序列(python)
    19.顺时针打印矩阵(python)
    18.二叉树的镜像(python)
    [leetcode] 82. 删除排序链表中的重复元素 II
    [leetcode] 83. 删除排序链表中的重复元素
    [leetcode] 81. 搜索旋转排序数组 II
    [leetcode] 80. 删除排序数组中的重复项 II
    [leetcode] 208. 实现 Trie (前缀树)(Java)
    [leetcode] 212. 单词搜索 II(Java)
    [leetcode] 79. 单词搜索
  • 原文地址:https://www.cnblogs.com/vieta/p/10848488.html
Copyright © 2011-2022 走看看