14 Servlet——ServletContext

ServletContext对象的概念

ServletContext对象实现存储不同的用户之间公用的一些数据

特点:

  • 服务器创建
  • 用户共享

 

作用域:整个项目内

生命周期:服务器启动到服务器关闭

获取ServletContext对象

第一种方式

  • ServletContext sc=this.getServletContext();

第二种方式

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

第三种方式

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

使用ServletContext对象完成数据共享

数据存储

  • sc.setAttribute(String name, Object value);

数据获取

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

注意:

  • 不同的用户可以给ServletContext对象进行数据的存取。
  • 获取的数据不存在返回null。

全局配置数据的获取与配置

一些web项目需要保存一些用户共享的静态数据,那我们就把这些数据配置在web.xml中。

获取

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

配置

在web.xml中添加下面的代码

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

<context-param>

<param-name>name</param-name>

<param-value>value</param-value>

</context-param>

  

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

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

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

获取webroot下的资源的流对象

  • InputStream is = sc.getResourceAsStream(String path);

注意:

  • 此种方式只能获取项目根目录下的资源流对象,class文件的流对象需要使用类加载器获取
  • path参数为项目根目录中的路径如:/doc/1.txt
posted @ 2020-02-24 14:40  Scorpicat  阅读(114)  评论(0编辑  收藏  举报