PageContext

pageContext

pageContext对象是JSP中很重要的一个内置对象,不过在一般的JSP程序中,很少用到它。它是javax.servlet.jsp.PageContext类的实例对象,可以使用PageContext类的方法。实际上,pageContext对象提供了对JSP页面所有的对象及命名空间的访问。
pageContext对象

这个对象代表页面上下文,该对象主要用于访问JSP之间的共享数据。

pageContext是PageContext类的实例,使用pageContext可以访问page、request、session、application范围的变量。

pageContext对象能够存取其他隐含对象

1.pageContext对象存取其他隐含对象属性的方法,此时需要指定范围的参数。
void setAttribute(String name, Object value, int scope)
范围参数有四个,分别代表四种范围:PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLICATION_SCOPE
getAttribute(String name):取得page范围内的name属性。

getAttribute(String name,int scope):取得指定范围内的name属性,其中scope可以是如下4个值:

PageContext.PAGE_SCOPE:对应于page范围。

PageContext.REQUEST_SCOPE:对应于request范围。

PageContext.SESSION_SCOPE:对应于session范围。

PageContext.APPLICATION_SCOPE:对应于application范围。

与getAttribute()方法相对应,PageContext也提供了2个对应的setAttribute()方法,用于将指定变量放入page、request、session、application范围内。

实例:

<%@page contentType="text/html;charset=gb2312"%>

<html><head><title>pageContext对象_例1</title></head>

<body><br>

<%

//使用pageContext设置属性,该属性默认在page范围内

pageContext.setAttribute("name","jason test");

request.setAttribute("name","霖苑编程");

session.setAttribute("name","霖苑计算机编程技术培训");

//session.putValue("name","计算机编程");

application.setAttribute("name","培训");

%>

page设定的值:<%=pageContext.getAttribute("name")%><br>

request设定的值:<%=pageContext.getRequest().getAttribute("name")%><br>

session设定的值:<%=pageContext.getSession().getAttribute("name")%><br>

application设定的值:<%=pageContext.getServletContext().getAttribute("name")%><br>

范围1内的值:<%=pageContext.getAttribute("name",1)%><br>

范围2内的值:<%=pageContext.getAttribute("name",2)%><br>

范围3内的值:<%=pageContext.getAttribute("name",3)%><br>

范围4内的值:<%=pageContext.getAttribute("name",4)%><br>

<!--从最小的范围page开始,然后是reques、session以及application-->

<%pageContext.removeAttribute("name",3);%>

pageContext修改后的session设定的值:<%=session.getValue("name")%><br>

<%pageContext.setAttribute("name","应用技术培训",4);%>

pageContext修改后的application设定的值:<%=pageContext.getServletContext().getAttribute("name")%><br>

值的查找:<%=pageContext.findAttribute("name")%><br>

属性name的范围:<%=pageContext.getAttributesScope("name")%><br>

</body></html>

 

页面显示结果:

page设定的值:jason test

request设定的值:霖苑编程

session设定的值:霖苑计算机编程技术培训

application设定的值:培训

范围1内的值:jason test

范围2内的值:霖苑编程

范围3内的值:霖苑计算机编程技术培训

范围4内的值:培训

pageContext修改后的session设定的值:null

pageContext修改后的application设定的值:应用技术培训

值的查找:jason test

属性name的范围:1

2.PageContext对象取得其他隐含对象的方法
Exception getException( ) 回传网页的异常,不过此网页要为error page,
JspWriter getOut( ) 回传网页的输出流,例如:out
Object getPage( ) 回传网页的Servlet 实体(instance),例如:page
ServletRequest getRequest( ) 回传网页的请求,例如:request
ServletResponse getResponse( ) 回传网页的响应,例如:response
ServletConfig getServletConfig( ) 回传此网页的ServletConfig 对象,例如:config
ServletContext getServletContext( ) 回传此网页的执行环境(context),例如:application
HttpSession getSession( ) 回传和网页有联系的会话(session),例如:session
3.PageContext对象提供取得属性的方法
Object getAttribute(String name, int scope) 回传name 属性,范围为scope的属性对象,回传类型为Object
Enumeration getAttributeNamesInScope(int scope) 回传所有属性范围为scope 的属性名称,回传类型为Enumeration
int getAttributesScope(String name) 回传属性名称为name 的属性范围
void removeAttribute(String name) 移除属性名称为name 的属性对象
void removeAttribute(String name, int scope)移除属性名称为name,范围为scope 的属性对象
void setAttribute(String name, Object value, int scope) 指定属性对象的名称为name、值为value、范围为scope
Object findAttribute(String name) 寻找在所有范围中属性名称为name 的属性对象

见的用法

在使用struts时,需要从jsp页面中指向struts中定义的方法时,可以使用如下的写法
(这里是在一个表单中请求action方法的示例)
<form action="${pageContext.request.contextPath}/pathOfYourAction"
enctype="multipart/form-data"method ="post">
file: <input type ="file"name="upload_file">
<input type ="submit"value="upload file"/>
</form >

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值