JSP四大域对象
四种属性范围:
在JSP中提供了四种属性的保存范围,保存范围指的是一个设置的对象,可以在多少个页面中保存并继续使用
-
page范围
pageContext:只是在一个页面中保存属性,跳转之后无效
-
request范围
request:只在一次请求中保存,服务器跳转后依然有效(最常用)
-
session范围
session:在一次会话范围中,无论何种跳转都有效
-
application范围
application:在整个服务器中保存,关闭后失效
方法 | 类型 | 描述 |
---|---|---|
public Object getAttribute(String name) | 普通 | 根据属性名称获取属性内容 |
public void removeAttribute(String name) | 普通 | 根据属性名称删除指定属性 |
public void setAttribute(String name,object o) | 普通 | 设置属性的名称和内容 |
属性范围的特点
-
page
本页面取得,服务器跳转(jsp:forward)后无效
-
request
服务器跳转有效,客户端跳转无效
如果是客户端跳转,则相当于发出了两次请求,那么第一次的请求不存在了,所以如果希望不管是客户端还是服务器跳转都能保存的话需要继续扩大范围。
-
session
服务器还是客户端都能取得,但是重新开启一个新的浏览器就会失效,原因是无法取得之前设置的session了,每一个session只保存在当前浏览器,并且在当前页面取得。
对于服务器而言,每一个连接到它的客户端都是一个session对象
如果想要让属性值只设置一次之后,不管是否是新的浏览器都能取得就需要继续扩大范围使用application
-
application
所有的application属性直接保存在服务器上,所有的用户(每一个session) 都可以直接取得,表示公共的内容,但是重启服务器之后就无法取得了
总结使用范围
在合理范围内尽可能小