JSP 九个内置对象 - 四个域对象
内置对象
JSP 中的内置对象,是指 Tomcat在翻译jsp页面成为 Servlet源代码后,内部提供的九大对象,叫内置对象 - 也就是说在 JSP 页面加载完毕之后自动帮开发者创建好了这些对象,开发者只需要使用相应的对象调用相应的方法即可;
九大内置对象
对象 | Explain |
---|---|
request | 请求对象 |
response | 响应对象 |
pageContext | pageContext 当前页面的上下文,可以获得隐式对象,同时可以保持获取不同域中的属性值,拥有自己的域(pageScope) |
session | 会话对象 |
application | ServletContext 对象 |
config | ServeltConfig 对象 |
out | JSP 输出流对象 |
page | 指向当前 JSP 的对象,等同于 JSP 编译后的 Servlet |
exception | 异常对象 |
四大域对象
域对象是可以像 Map 一样存取数据的对象,四个域对象功能一样,不同是作用范围,功能虽然相同,但是在使用上有优先顺序,从小到大的范围:pageContext => request => session => application
对象 | 作用域 |
---|---|
pageContext | 当前 JSP 页面内有效 |
request | 一次请求有效 |
session | HttpSession 一个会话 |
application | ServletContext 整个Web |
pageContext
作为一个内置对象,PageContext封装了其他八个对象, 可以通过pageContext获取其他八个内置对象
public abstract HttpSession getSession();
public abstract Object getPage();
public abstract ServletRequest getRequest();
public abstract ServletResponse getResponse();
public abstract Exception getException();
public abstract ServletConfig getServletConfig();
public abstract ServletContext getServletContext();
其中有getSession()
用于获得HttpSession
对象, getServletContext()
用于获得ServletContext
对象
作为一个域对象, pageContext 主要用于保存数据和获取数据
保存数据:
1)默认情况下,保存到page域 pageContext.setAttribute("name");
2)可以向四个域对象保存数据 pageContext.setAttribute("name",域范围常量)
public static final int PAGE_SCOPE = 1;
public static final int REQUEST_SCOPE = 2;
public static final int SESSION_SCOPE = 3;
public static final int APPLICATION_SCOPE = 4;
3)自动在四个域中获取数据 pageContext.findAttribute("name");
顺序: page => request => session => application