当前位置:   article > 正文

javaweb:域对象的属性操作setAttribute(),getAttribute()及其作用范围_object 变量 = 作用域对象.getattribute(属性名变量类型

object 变量 = 作用域对象.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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

在这里插入图片描述

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

  • 举例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都可以获取到

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/431276
推荐阅读
相关标签
  

闽ICP备14008679号