javaweb:域对象的属性操作setAttribute(),getAttribute()及其作用范围

和属性相关的方法

方法介绍

  1. Object getAttribute(String name)
    获取指定的属性
  2. Enumeration getAttributeNames();
    获取所有名字属性组成的Enumeration对象。
  3. removeAttribute(String name)
    移除指定的属性
  4. void setAttribute(String name,Object o);
    设置属性
  • 有这些方法的对象
    pageContext,request,session,application对象都有这些方法,也称之为域对象``

举例

jsp页面attr1的body写成如下部分:

<body>
      <%
           pageContext.setAttribute("pageContextAttr", "pageContextValue");
           request.setAttribute("requestAttr", "requestValue");
           session.setAttribute("sessionAttr", "sessionValue");
           application.setAttribute("applicationAttr", "applicationValue");
      %>
      
      <br> <br>
      pageContextAttr:<%= pageContext.getAttribute("pageContextAttr") %>
      <br> <br>
      requestAttr:<%= request.getAttribute("requestAttr") %>
      <br> <br>
      sessionAttr:<%= session.getAttribute("sessionAttr") %>
      <br> <br>
      applicationAttr:<%= pageContext.getAttribute("pageContextAttr") %>
</body>

在这里插入图片描述

  从运行结果我们可以得到结论,这几个域对象都可以设置属性值,并且可以获取属性值,不仅可以获取到自己设置的属性,也可以获取到其他人设置的属性。

  • 举例2:
    我们在attr1.jsp中加入以下一个链接
    在这里插入图片描述
    在attr2.jsp中的body部分写入和attr1.jsp类似的部分。
    在这里插入图片描述
    我们运行attr2.jsp,可以得到以下结果
    在这里插入图片描述
    为什么pageContext和requestAttr获得的值是空的呢?(applicationAttr那里是application获取的pagecontext的值,因此为空,实际application的属性值是可以跨越jsp传输的)
    我们得到了结论: pagecontext的作用范围当前jsp页面,request的作用范围是同一个请求,session的作用范围仅限于一次会话(浏览器打开到关闭为一次会话,在此期间会话不失效),application的作用范围限于当前WEB应用,是范围最大的属性作用范围,只要在一处设置属性,在其他各处的JSP和servlet都可以获取到

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值