JSP pageContext隐式对象,它是javax.servlet.jsp.PageContext
的一个实例。使用此对象,您可以在以下任何级别找到属性,获取属性,设置属性和删除属性:
- JSP 页面 – 范围:
PAGE_CONTEXT
- HTTP 请求 – 范围:
REQUEST_CONTEXT
- HTTP 会话 – 范围:
SESSION_CONTEXT
- 应用级别 – 范围:
APPLICATION_CONTEXT
pageContext
隐式对象的方法
Object findAttribute(String AttributeName)
:**此方法按以下顺序搜索所有四个级别中的指定属性 – 页面,请求,会话和应用。当在任何级别找不到属性时,它返回NULL
。Object getAttribute (String AttributeName, int Scope)
: 它在指定范围内查找属性。此方法类似于findAttribute
方法。唯一的区别是findAttribute
会按顺序在所有四个级别中查找,而getAttribute
则在指定的范围中查找。 例如在以下语句中,getAttribute
方法将在会话范围(或会话级别/层)中搜索属性"geek-docs"
。如果找到该属性,则将其分配给Object obj
,否则将返回Null
。同样,该方法也可用于其他范围:
void removeAttribute(String AttributeName, int Scope)
:此方法用于从给定范围中删除属性。例如 – 下面的 JSP 语句将从页面范围中删除属性"MyAttr"
。void setAttribute(String AttributeName, Object AttributeValue, int Scope)
:它在给定范围内写入属性。示例–下面的语句将在应用程序范围内存储值为"This is my data"
的属性"mydata"
。类似地,这将在请求范围中创建名为
attr1
的属性,其值为"Attr1 value"
。
pageContext
隐式对象示例
index.html
在这里,我们只是要求用户输入登录详细信息。
validation.jsp
在此页面中,我们使用pageContext
隐式对象和会话范围存储用户凭据,这意味着我们将能够访问详细信息,直到用户的会话处于活动状态。我们还可以使用其他范围参数存储属性,例如页面,应用和请求。
display.jsp
在这个 JSP 页面中,我们使用getAttribute
方法获取存储的属性。这里需要注意的是,我们已经使用会话范围存储了属性,因此我们必须将范围指定为会话才能获取这些属性的值。
示例输出的屏幕截图
我们从用户接收用户 ID 和密码的登录页面。
有详细页面链接的页面:
用户凭据显示页面,我们已通过pageContext
实例从登录页面传递到此页面。