- 浏览: 540069 次
- 性别:
- 来自: 南京
-
文章分类
- 全部博客 (168)
- java基础 (22)
- 面向对象编程 (2)
- 集合 (4)
- I/O操作 (5)
- 多线程 (9)
- java高级特性 (8)
- 网络编程 (0)
- sql基础 (23)
- JDBC (1)
- 数据结构与算法 (20)
- 软件测试 (1)
- 程序员小知识 (2)
- WEB开发 (15)
- 其他 (11)
- Struts (3)
- Hibernate (8)
- Spring (4)
- 设计模式 (5)
- java基础快速总结 (1)
- 正则表达式 (3)
- UML (3)
- XML操作 (0)
- 编译原理 (1)
- tomcat (2)
- EJB (0)
- javascript (4)
- 个人系统设计 (1)
- Extjs (3)
- 面试题总结 (4)
- 技术大综合 (2)
- 最经需要搞好多的开源软件,集中下 (0)
- java重写hashcode的分析(转) (1)
最新评论
-
jerry.zhao:
ybzshizds 写道这种用工厂模式解决的办法其实还是有一个 ...
InitialContext和lookup -
小土豆内特:
static class Queue
java实现队列 -
leizisdu:
感谢楼主讲解、分享!
工厂模式 -
kchiu:
写了没什么用
EXT组件xtype简介 -
u010271301:
大哥 能描述的跟详细点么?
浅谈write(byte[] b)和write(byte[] b,int off,int len)的区别
pageContext对象
pageContext对象是JSP中很重要的一个内置对象,不过在一般的JSP程序中,很少用到它,所以知道request对象、response对象的人比较多,知道pageContext对象的人就比较少了。它是javax.servlet.jsp.PageContext类的实例对象,可以使用PageContext类的方法。实际上,pageContext对象提供了对JSP页面所有的对象及命名空间的访问,正如前面所介绍的一样,使用pageContext对象可以访问application对象、exception对象,还有session对象等。pageContext对象的方法可以访问除本身以外的8个JSP内部对象,还可以直接访问绑定在application对象、page对象、request对象、session对象上的Java对象。pageContext对象相当于JSP程序中所有对象功能的集成者。不过,这里存在着一个问题,既然可以直接访问JSP内部对象,为什么还要多此一举,通过pageContext对象来访问它们呢?这也正是pageContext对象应用较少的原因。话虽这样说,pageContext对象总是JSP中9个内置对象不可或缺的一部分,读者还是需要掌握它的用法的。
在JSP程序中,我们可以使用pageContext来代表pageContext对象:
<%
pageContext.Method();
%>
pageContext对象的主要用法如下。
1)getOut()
该方法返回一个JspWriter类的实例对象,也就是JSP内置对象——out对象,可以往客户端写入输入流。它的使用方法如下:
<%
JspWriter myout=pageContext.getOut();
myout.println(“myout write: hello world”+”<br>”);
out.println(“out write: hello world”);
%>
2)getSession()
该方法的返回值是一个HttpSession接口的实例对象,即JSP内置对象——session对象,可以保存不同用户的信息。它的使用方法如下:
<%
String username1=”george”;
String password1=”george”;
HttpSession mySession= pageContext. getSession();
mySession.putValue(“username”,username1);
mySession.putValue(“password”, password1);
%>
3)getPage()
该方法的返回值是一个java.lang.Object对象,也就是JSP内置对象——page对象。它的使用方法如下:
<%
Object mypage=pageContext.getPage();
out.println(mypage.toString());
%>
4)getResponse()
该方法的返回对象是javax.servlet.ServletResponse,也就是JSP内置对象——response对象,主要用于控制HTTP连接。它的使用方法如下:
<%
ServletResponse myresponse=pageContext.getResponse();
out.println(myresponse.getCharacterEncoding());
%>
5)getRequest()
该方法的返回对象是javax.servlet.ServletRequest,也就是JSP内置对象——request对象,主要用于获取客户端的信息。它的使用方法如下:
<%
ServletRequest myrequest=pageContext.getRequest();
out.println(myrequest.getRemoteHost());
String username2=”robin”;
String password2=”robin”;
myrequest.setAttribute(“username”,username2);
myrequest.setAttribute(“password”, password2);
%>
6)getException()
该方法的返回值是当前页的exception对象。它的使用方法如下:
<%
Exception myexception=pageContext. getException();
out.println(myexception.getMessage());
%>
上面的代码片段最好在错误处理程序中使用,也就是page编译指令的isErrorPage属性为true的页面中。
7)getServletConfig()
该方法可以返回当前的config对象,用于获取JSP/Servlet程序的初始参数。它的使用方法如下:
<%
ServletConfig myconfig=pageContext.getServletConfig();
%>
8)getServletContext()
该方法的返回值是一个ServletConfig接口的实例对象,也就是JSP内置对象——application对象的副本。它的使用方法如下:
<%
ServletContext myapplication=pageContext.getServletContext();
out.println(myapplication.getServerInfo());
String username3=”java”;
String password3=”java”;
myapplication.setAttribute(“username”,username3);
myapplication.setAttribute(“password”, password3);
%>
9)setAttribute(String name, Object o, int scope)
pageContext对象的setAttribute()方法可以将参数或者Java对象绑定到application对象、session对象、request对象或者page对象上,这里的scope参数可以取以下的值。
l pageContext.PAGE_SCOPE
l pageContext.REQUEST_SCOPE
l pageContext.SESSION_SCOPE
l pageContext.APPLICATION_SCOPE
当scope参数的值为pageContext.SESSION_SCOPE时,调用PageContext对象的setAttribute()方法和调用session对象的putValue()方法是等效的,都是将某个参数或者Java对象和当前的session绑定起来。如果scope参数的值为如果scope参数的值为pageContext.APPLICATION_SCOPE,那么调用PageContext对象的setAttribute()方法和调用application对象的setAttribute()方法是等效的。如果scope参数是其他的值,原理也是一样的,我们就不多说了。它的使用方法如下:
<%
pageContext.setAttribute(“username”,”george”,
pageContext.APPLICATION_SCOPE);
pageContext.setAttribute(“username”,”robin”,pageContext.
SESSION_SCOPE);
%>
10)getAttribute(String name, int scope)
pageContext对象的getAttribute()方法也可以直接获取和application对象、page对象、session对象、request对象相互绑定的参数或者Java对象的值。这个方法的scope参数的意义和上面讲的一样。如果scope参数的值是pageContext.REQUEST_SCOPE,那么getAtttribute()方法就在当前的request对象内部查找有没有绑定一个名为name的Java对象,如果有,就返回这个对象,如果没有,返回null值。如果scope参数的值是pageContext.APPLICATION_SCOPE,那么getAtttribute()方法的作用范围将是application对象。它的使用方法如下:
<%
pageContext.getAttribute(“username”, pageContext.APPLICATION_SCOPE);
pageContext.getAttribute(“username”, pageContext.SESSION_SCOPE);
%>
11)removeAttribute(String name, int scope)
顾名思义,pageContext对象的removeAttribute()方法可以直接解除application对象、session对象、request对象、page对象和某个特定的参数或者Java对象的绑定关系。这个方法的scope参数指定了作用的范围,如果scope参数的值为pageContext.SESSION_SCOPE,那么removeAttribute()方法将会使某个参数或者Java对象和当前的session对象解除绑定关系,如果scope参数是其他值,原理也一样的。它的使用方法如下:
<%
pageContext.removeAttribute(“username”,
pageContext.APPLICATION_SCOPE);
pageContext.removeAttribute(“username”, pageContext.SESSION_SCOPE);
%>
12)findAttribute(String name)
pageContext对象的findAttribute()方法将在application对象、session对象、request对象、page对象内部查找是否有某个参数或者Java对象与这些对象绑定了,搜索顺序是先是范围最小的page对象,其次是request对象、session对象,最后是application对象,这个方法的返回值是第一个符合要求的Java对象的值。它的使用方法如下:
<%
String username=pageContext.findAttribute(“username”);
%>
13)getAttributeScope(String name)
使用这个方法可以知道特定的参数或者Java对象和哪一个JSP对象绑定在一起。该方法的返回值是整型常数,可能是下面4个常数之一:
l pageContext.PAGE_SCOPE
l pageContext.REQUEST_SCOPE
l pageContext.SESSION_SCOPE
l pageContext.APPLICATION_SCOPE
如果返回值是pageContext.SESSION_SCOPE,表明这个Java对象和session对象绑定在一起。如果是其他返回值,读者可以依次类推。它的使用方法如下:
<%
Int scope=pageContext.getAttributeScope(“username”);
%>
14)getAttributeNameInScope(int scope)
该方法可以获取特定JSP对象内部绑定了哪些参数或者Java对象,scope参数指定了该方法的作用范围。这个方法的返回值是一个枚举对象(Enumeration)。它的用法示例如下:
<%
Enumeration enum=null;
enum=pageContext.getAttributeNamesInScope(pageContext.SESSION_SCOPE);
while(enum.hasMoreElements())
{
out.println(enum.nextElement()+”<br>”);
}
%>
上面的JSP代码段将返回session对象中所绑定的参数或者Java对象的名字。
15)release()
该方法将会释放pageContext对象所占的资源。
16)forward(String url)
该方法可以实现网页的重定向功能,类似于response.sendRedirect()方法。
17)include(String relativeUrlPath)
该方法可以让当前文件包含进一个外部文件,类似于JSP的include编译指令和<jsp:include>操作指令。
由上面对pageContext对象的介绍,读者应该不难看出,pageContext对象有两大主要功能,分别是获取各JSP内部对象,以及直接操作与某些JSP对象绑定在一起的参数或者Java对象。
pageContext对象是JSP中很重要的一个内置对象,不过在一般的JSP程序中,很少用到它,所以知道request对象、response对象的人比较多,知道pageContext对象的人就比较少了。它是javax.servlet.jsp.PageContext类的实例对象,可以使用PageContext类的方法。实际上,pageContext对象提供了对JSP页面所有的对象及命名空间的访问,正如前面所介绍的一样,使用pageContext对象可以访问application对象、exception对象,还有session对象等。pageContext对象的方法可以访问除本身以外的8个JSP内部对象,还可以直接访问绑定在application对象、page对象、request对象、session对象上的Java对象。pageContext对象相当于JSP程序中所有对象功能的集成者。不过,这里存在着一个问题,既然可以直接访问JSP内部对象,为什么还要多此一举,通过pageContext对象来访问它们呢?这也正是pageContext对象应用较少的原因。话虽这样说,pageContext对象总是JSP中9个内置对象不可或缺的一部分,读者还是需要掌握它的用法的。
在JSP程序中,我们可以使用pageContext来代表pageContext对象:
<%
pageContext.Method();
%>
pageContext对象的主要用法如下。
1)getOut()
该方法返回一个JspWriter类的实例对象,也就是JSP内置对象——out对象,可以往客户端写入输入流。它的使用方法如下:
<%
JspWriter myout=pageContext.getOut();
myout.println(“myout write: hello world”+”<br>”);
out.println(“out write: hello world”);
%>
2)getSession()
该方法的返回值是一个HttpSession接口的实例对象,即JSP内置对象——session对象,可以保存不同用户的信息。它的使用方法如下:
<%
String username1=”george”;
String password1=”george”;
HttpSession mySession= pageContext. getSession();
mySession.putValue(“username”,username1);
mySession.putValue(“password”, password1);
%>
3)getPage()
该方法的返回值是一个java.lang.Object对象,也就是JSP内置对象——page对象。它的使用方法如下:
<%
Object mypage=pageContext.getPage();
out.println(mypage.toString());
%>
4)getResponse()
该方法的返回对象是javax.servlet.ServletResponse,也就是JSP内置对象——response对象,主要用于控制HTTP连接。它的使用方法如下:
<%
ServletResponse myresponse=pageContext.getResponse();
out.println(myresponse.getCharacterEncoding());
%>
5)getRequest()
该方法的返回对象是javax.servlet.ServletRequest,也就是JSP内置对象——request对象,主要用于获取客户端的信息。它的使用方法如下:
<%
ServletRequest myrequest=pageContext.getRequest();
out.println(myrequest.getRemoteHost());
String username2=”robin”;
String password2=”robin”;
myrequest.setAttribute(“username”,username2);
myrequest.setAttribute(“password”, password2);
%>
6)getException()
该方法的返回值是当前页的exception对象。它的使用方法如下:
<%
Exception myexception=pageContext. getException();
out.println(myexception.getMessage());
%>
上面的代码片段最好在错误处理程序中使用,也就是page编译指令的isErrorPage属性为true的页面中。
7)getServletConfig()
该方法可以返回当前的config对象,用于获取JSP/Servlet程序的初始参数。它的使用方法如下:
<%
ServletConfig myconfig=pageContext.getServletConfig();
%>
8)getServletContext()
该方法的返回值是一个ServletConfig接口的实例对象,也就是JSP内置对象——application对象的副本。它的使用方法如下:
<%
ServletContext myapplication=pageContext.getServletContext();
out.println(myapplication.getServerInfo());
String username3=”java”;
String password3=”java”;
myapplication.setAttribute(“username”,username3);
myapplication.setAttribute(“password”, password3);
%>
9)setAttribute(String name, Object o, int scope)
pageContext对象的setAttribute()方法可以将参数或者Java对象绑定到application对象、session对象、request对象或者page对象上,这里的scope参数可以取以下的值。
l pageContext.PAGE_SCOPE
l pageContext.REQUEST_SCOPE
l pageContext.SESSION_SCOPE
l pageContext.APPLICATION_SCOPE
当scope参数的值为pageContext.SESSION_SCOPE时,调用PageContext对象的setAttribute()方法和调用session对象的putValue()方法是等效的,都是将某个参数或者Java对象和当前的session绑定起来。如果scope参数的值为如果scope参数的值为pageContext.APPLICATION_SCOPE,那么调用PageContext对象的setAttribute()方法和调用application对象的setAttribute()方法是等效的。如果scope参数是其他的值,原理也是一样的,我们就不多说了。它的使用方法如下:
<%
pageContext.setAttribute(“username”,”george”,
pageContext.APPLICATION_SCOPE);
pageContext.setAttribute(“username”,”robin”,pageContext.
SESSION_SCOPE);
%>
10)getAttribute(String name, int scope)
pageContext对象的getAttribute()方法也可以直接获取和application对象、page对象、session对象、request对象相互绑定的参数或者Java对象的值。这个方法的scope参数的意义和上面讲的一样。如果scope参数的值是pageContext.REQUEST_SCOPE,那么getAtttribute()方法就在当前的request对象内部查找有没有绑定一个名为name的Java对象,如果有,就返回这个对象,如果没有,返回null值。如果scope参数的值是pageContext.APPLICATION_SCOPE,那么getAtttribute()方法的作用范围将是application对象。它的使用方法如下:
<%
pageContext.getAttribute(“username”, pageContext.APPLICATION_SCOPE);
pageContext.getAttribute(“username”, pageContext.SESSION_SCOPE);
%>
11)removeAttribute(String name, int scope)
顾名思义,pageContext对象的removeAttribute()方法可以直接解除application对象、session对象、request对象、page对象和某个特定的参数或者Java对象的绑定关系。这个方法的scope参数指定了作用的范围,如果scope参数的值为pageContext.SESSION_SCOPE,那么removeAttribute()方法将会使某个参数或者Java对象和当前的session对象解除绑定关系,如果scope参数是其他值,原理也一样的。它的使用方法如下:
<%
pageContext.removeAttribute(“username”,
pageContext.APPLICATION_SCOPE);
pageContext.removeAttribute(“username”, pageContext.SESSION_SCOPE);
%>
12)findAttribute(String name)
pageContext对象的findAttribute()方法将在application对象、session对象、request对象、page对象内部查找是否有某个参数或者Java对象与这些对象绑定了,搜索顺序是先是范围最小的page对象,其次是request对象、session对象,最后是application对象,这个方法的返回值是第一个符合要求的Java对象的值。它的使用方法如下:
<%
String username=pageContext.findAttribute(“username”);
%>
13)getAttributeScope(String name)
使用这个方法可以知道特定的参数或者Java对象和哪一个JSP对象绑定在一起。该方法的返回值是整型常数,可能是下面4个常数之一:
l pageContext.PAGE_SCOPE
l pageContext.REQUEST_SCOPE
l pageContext.SESSION_SCOPE
l pageContext.APPLICATION_SCOPE
如果返回值是pageContext.SESSION_SCOPE,表明这个Java对象和session对象绑定在一起。如果是其他返回值,读者可以依次类推。它的使用方法如下:
<%
Int scope=pageContext.getAttributeScope(“username”);
%>
14)getAttributeNameInScope(int scope)
该方法可以获取特定JSP对象内部绑定了哪些参数或者Java对象,scope参数指定了该方法的作用范围。这个方法的返回值是一个枚举对象(Enumeration)。它的用法示例如下:
<%
Enumeration enum=null;
enum=pageContext.getAttributeNamesInScope(pageContext.SESSION_SCOPE);
while(enum.hasMoreElements())
{
out.println(enum.nextElement()+”<br>”);
}
%>
上面的JSP代码段将返回session对象中所绑定的参数或者Java对象的名字。
15)release()
该方法将会释放pageContext对象所占的资源。
16)forward(String url)
该方法可以实现网页的重定向功能,类似于response.sendRedirect()方法。
17)include(String relativeUrlPath)
该方法可以让当前文件包含进一个外部文件,类似于JSP的include编译指令和<jsp:include>操作指令。
由上面对pageContext对象的介绍,读者应该不难看出,pageContext对象有两大主要功能,分别是获取各JSP内部对象,以及直接操作与某些JSP对象绑定在一起的参数或者Java对象。
发表评论
-
jsp:useBean class和type的区别
2010-08-12 13:39 3216<jsp:useBean id="produc ... -
Ajax中文乱码解决方案
2010-07-14 11:18 1004方案一:web端和服务器端处理 web端: ... -
网页状态码
2010-06-08 16:57 945100——客户必须继续发出请求 101——客户要求 ... -
Servlet执行过程
2010-06-05 22:01 2165login.jsp 测试使用servlet<form ... -
Servlet获取web.xml中的参数方法
2010-06-05 20:57 4086<context-param> ... -
Servlet的init注意点
2010-06-05 20:52 2545在Servlet的GenericServleta类 ... -
jsp总结
2010-05-22 23:01 1728一、jsp简介 1.jsp页面构成 静态内容(html)、指 ... -
pageContext1
2010-05-21 23:19 1108pageContext隐含对象对应于javax.servl ... -
web基础知识
2010-05-21 22:14 17581.Web(World Wide Web、万维 ... -
JSP内建对象
2010-05-20 08:58 12021.out - javax.servlet.jsp.jspWr ... -
重定向和转发
2010-05-19 23:04 1659一、调用方式 我们知 ... -
Servlet注意点
2010-05-19 22:19 16111:application和ServletContext的关系 ... -
深入理解Servlet/JSP之Cookie和Session原理
2010-05-18 09:52 1251[size=xx-large]由于HTTP协议的无状态特征,W ... -
Servlet概述
2010-05-17 22:48 1416一、什么是Servlet Servlet ...
相关推荐
2. **获取`ServletContext`**:通过`HttpServletRequest`对象的`getServletContext()`方法获取`ServletContext`对象。 3. **获取`PageContext`**:使用`ServletContext`的`getPageContext(HttpServletRequest ...
NULL 博文链接:https://chaoyi.iteye.com/blog/2070817
2. PageContext 对象的生命周期:PageContext 对象的生命周期与当前 JSP 页面的生命周期相同,它们都是在 JSP 页面被访问时创建的。 PageContext 对象是一个非常重要的对象,它提供了访问当前 JSP 页面的信息和资源...
2. Request(请求): 请求范围是HTTP请求的生命期,从客户端发送请求到服务器响应请求结束。当用户通过浏览器提交表单或者点击链接时,可以在`HttpServletRequest`对象中使用`setAttribute()`方法设置属性,这些...
2. 统一资源定位:在使用Action或者Controller进行重定向或转发时,使用${pageContext.request.contextPath} 可以避免硬编码应用的绝对路径,使得代码更具有可移植性。 3. 与框架集成:许多Web框架如Struts、Spring...
2. **Request**:用于处理单一请求,可以在一个请求处理过程中被多个页面访问。 3. **Session**:作用域较大,适用于用户的整个会话期间。 4. **Application**:作用域最大,适用于整个应用的生命周期,所有用户都...
此外,pageContext还提供了一系列方法来获取和操作这些对象,如pageContext.getRequest()、pageContext.getResponse()等。 利用pageContext对象可以跨域获取其他域范围内的属性。例如,如果我们想要获取session范围...
在JavaScript中,${pageContext.request.contextPath}是一个特殊表达式,它源于JavaServer Pages (JSP) 的Expression Language (EL),用于获取当前请求的应用上下文路径。应用上下文路径是Web应用程序在服务器上的根...
超全面javaweb教程28天第11,12天_5_pageContext对象
2. **request对象**: - `HttpServletRequest`对象代表客户端的一次请求,用于获取请求参数、头信息等。 - 示例代码: ```java String username = request.getParameter("username"); out.println("用户名:...
【标题】"jsp__demo2.zip" 涉及的核心知识点是JSP中的PageContext对象,它是JavaServer Pages(JSP)技术中的一个重要组件。PageContext对象为JSP页面提供了全局访问请求、响应以及页面范围内的属性的能力。在这个...
2. **管理会话和应用范围的数据**:`PageContext` 提供了用于设置和获取不同作用域(页面、请求、会话、应用)属性的方法。 ```java // 设置应用范围属性 pageContext.setAttribute("appAttr", "value", ...
${pageContext.request.contextPath}/checkcode.jsp"/> 另外在web.xml中配置验证码类的加载: <servlet-name>CheckCodeImage <servlet-class>com.netshop.common.util.CheckCodeImage</servlet-class> ...
2. **`pageContext`**:提供对JSP页面上下文的访问,允许在不同作用域间共享数据。 3. **`request`**:表示HTTP请求,用于获取客户端发送的数据,如参数、头信息等。 4. **`response`**:表示HTTP响应,用于设置响应...
解决jsp中out对象和pageContext不能调用方法的问题,将这一jar包下载并导入项目就可以成功解决这一问题。
本文档详细介绍了作用域对象、Servlet上下文监听器、Servlet会话监听器、Servlet请求监听器
JSP中九大内置对象和四种属性范围详解 ...2 request javax.servlet.http.HttpServletRequest 3 response javax.servlet.http.HttpServletResponse 4 session javax.servlet.http.Http
NULL 博文链接:https://albert0707.iteye.com/blog/562969