域对象:ServletContext对象详解

JavaWeb四大域对象:
PageContext
ServletRequest
HttpSession
ServletContext(这里主要讲解)

作用:解决了不同用户的数据共享问题(一个项目只有一个ServletContext)
用途:网站统计器

创建者:服务器

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

作用域:项目内

1)获取ServletContext对象的三种方式:

第一种:ServletContext sc=this.getServletContext();
第二种:ServletContext sc2=this.getServletContext();
第三种:ServletContext sc3=req.getSession().getServletContext();

2)利用ServletContext完成数据共享:

ServletContext对象存储数据(map:key-value):
void setAttribute(String name,Object value);
void getAttribute(String name);
void removeAttribute(String name);
Enumeration getAttributeNames(); //获取所有域属性的名称;

3)获取web.xml的全局配置数据(如果想获取自己servlet配置信息用ServletConfig对象):

  <!-- 配置全局数据 -->
  <context-param>
  	<param-name>name</param-name>
  	<param-value>zhangsan</param-value>
  </context-param>

测试: 

ServletContext app=this.getServletContext();
String value=app.getInitParameter("name");
System.out.println(value);

全局配置作用大:将静态数据与代码进行解耦。
注意:一组  <context-param>只能声明一组键值对,多组可以声明多个  <context-param>进行存储。

4)ServletContext获得路径方法:
getContextPath():相对路径
getRealPath():绝对路径

<%="当前项目的虚拟路径:" +application.getContextPath()+"<br/>" %>
<%="虚拟路径对应的绝对路径:" +application.getRealPath("/MyJspProject")+"<br/>" %>

获取项目根目录(webContent)下资源的绝对路径(动态获取):
 获取此项目下,webContent/doc/1.txt文件

String path=sc.getRealPath("/doc/1.txt");

获取根目录下的资源流对象:

InputStream is=sc.getRescourceAsStream(String path);

注:此方式只能获得资源流对象,.class文件的流对象需要使用类加载器获取。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值