一、pageContext对象
1、定义:pageContext对象的类型是PageContext,叫jsp的上下文对象。
2、作用:
1)可以获取其他八个内置对象(伪代码)
public class 01_hello_jsp {
public void _jspService(request,response){
//创建内置对象
HttpSession session =....;
ServletConfig config = ....;
//把8个经常使用的内置对象封装到PageContext对象中
PageContext pageContext = 封装;
//调用method1方法
//如果不封装,那么method方法想要使用内置对象,就要传递一堆参数进去
method1(pageContext);
}
public void method1(PageContext pageContext){
//使用内置对象从PageContext对象中获取其他8个内置对象
JspWriter out = pageContext.getOut();
HttpServletRequest rquest = pageContext.getRequest();
........
}
}
使用场景: 在自定义标签的时候,PageContext对象频繁使用到!
2)本身是一个域对象:
a)ServletContext –context域
b)HttpServletRequet –request域
c)HttpSession –session域
d)PageContext –page域
a、b、c在Servlet中学习,也就是说Servlet有三个域对象。
d是在Jsp中新引入的,而Jsp也是一个Servlet,所以Jsp中有四个域对象。
3、pageContext域对象详解: 保存数据和获取数据,用于共享数据
1)数据存取
a)
pageContext.setAttribute("name","值");//默认情况下,保存到page域
pageContext.getAttribute("name");//默认情况下,从page域获取
b)可以向四个域对象存取数据
pageContext.setAttribute("name","值",域范围常量);
pageContext.getAttribute("name",域范围常量);
c)域范围常量:
PageContext.PAGE_SCOPE
PageContext.REQUEST_SCOPE
PageContext..SESSION_SCOPE
PageContext.APPLICATION_SCOPE
2)自动在四个域中搜索数据
pageContext.findAttribute("name");
顺序: page域 -> request域 -> session域- > context域(application域)
二、 Jsp中的四个域对象
1、四个域对象:
pageContext page域
request request域
session session域
application context域
2、域对象作用:保存数据 和 获取数据 ,用于数据共享。
3、域对象方法:
1)setAttribute(“name”,Object) 保存数据
2)getAttribute(“name”) 获取数据
3)removeAttribute(“name”) 清除数据
4、域对象作用范围:
1)page域:只能在当前jsp页面中使用(当前页面)
2)request域:只能在同一个请求中使用(转发)
3)session域:只能在同一个会话(session对象)中使用(私有的)
4)context域:只能在同一个web应用中使用。(全局的)