Java Web 回顾总结(六) - jsp - 四大属性范围(补充)

内置对象的本质 是 jsp 页面操作 的所有对象集合
而 通过内置对象的方法 指定 四大属性对象 来与 其他 jsp 页面交互 ,与 servlet 交互

其交互的内容进行分类后 就是对应的 不同属性

而这些对象都有 自身的 作用范围 ,在范围外 ,将 发生改变,或 不再适用


属性范围

与上一节 提到的 相同 

  JSP中提供了四种属性范围,四种属性范围分别指以下四种:

属性 生命周期 简介
page(本质为 pageContext 属性) 在当前页面中有效 一个属性只能在一个页面中取得,跳转到其他页面无法取得
request 请求转发 一个页面中设置的属性,只要经过了服务器跳转,则 跳转之后的页面 可以继续取得。
session 默认半小时 ,而且只针对一个浏览器(或服务器上的唯一的session) 一个浏览器设置的内容,只要是与此浏览器相关的页面都可以访问
application 服务器关闭的时候 在整个服务器上设置的属性,任何都可以访问

注:

虽习惯将页面范围的属性称为page范围,但是实际上操作的时候是使用pageContext内置对象完成的。


属性的操作方法

  与上一章的相同,除去 查找操作 ,总共三个操作 ,

 public void setAttribute(java.lang.String name,java.lang.Object value)
 public java.lang.Object getAttribute(java.lang.String name)
 public void removeAttribute(java.lang.String name)

  属性的操作本质上 只有 添加、获得和删除 这个几个操作。

附:

Object valuevalueObject类型,由于值为Object类型,这表示可以设置任意类型的数据作为值,因为所有的类都是从Object类型继承而来。因此设置属性值的时候可以是任意类型的数据。


简介

pageContext属性范围(不考虑特殊性)

pageContext对象在本页面setAttribute属性后,在本页面可以通过getAttribute方法取得
属性值
如果转发到另一个页面后,将不能取得属性值

request属性范围

request对象在本页面setAttribute属性后,在本页面通过getAttribute方法可取得属性值
转发(例如<jsp-forward/>)至另一个页面也可以取得属性值
但是当向另一个页面发送超链接时,不能通过getAttribute方法取得属性值

sessoin属性范围

session对象在本页面setAttribute属性后,通过getAttribute方法在本页面可取得属性
转发之后,发送 超链接 之后都可以得属性。
但当重新打开浏览器之后,再通过getAttribute方法,将不能取得属性值

application属性范围

applicate对象在本页面setAttribute属性后,通过getAttribute方法在本页面
转发之后,超链接,打开另外一浏览器之后都可以取得属性。


四种属性范围的使用场合

1.page(pageContext):除自定义标签外,用的很少
2.request:如果客户向服务器发请求,产生的数据

用户看完就没用了,像这样的数据就存在request
像 新闻数据 ,属于用户看完就没用的。

3.session:如果客户向服务器发请求,产生的数据

用户用完了等一会儿还有用,像这样的数据就存在session域中,
像购物浏览的商品数据,用户需要看到自己浏览过哪些商品信息,并且等一会儿,还要用这个商品数据结帐。

 
4.application(servletContext):如果客户向服务器发请求,产生的数据

用户用完了,还要给其它用户用,像这样的数据就存在application(servletContext)域中
像聊天数据,购物车等。

使用的原则:

因为四种属性范围的保存时间不同,所以占用内存的时间也就不同了,能使用request就不要使用session,一般情况下,requestsession两个属性范围使用的频率是最高的。

猜你喜欢

转载自blog.csdn.net/lendq/article/details/79965958
今日推荐