JSP中的pageContext内置对象:页面的上下文对象
page对象(this)与pageContext对象不是一回事
1)pageContext是一个域对象
setAttribute(String name,Object obj)
getAttribute(String name)
removeAttrbute(String name)
pageContext可以向指定的其他域中存取数据
setAttribute(String name,Object obj,int scope)
getAttribute(String name,int scope)
removeAttrbute(String name,int scope)
findAttribute(String name)
---依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不再向后寻找
四大作用域的总结:
page域:当前jsp页面范围
request域:一次请求
session域:一次会话
application域:整个web应用
2)pageContext对象可以获得其他8大隐式对象
例如: pageContext.getRequest()
pageContext.getSession()
pageContext.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setAttribute("name", "zhangsan");
pageContext.setAttribute("name", "sunba"); // pageContext域存数据
pageContext.setAttribute("name", "lisi", PageContext.REQUEST_SCOPE); //通过pageContext向request域存数据
pageContext.setAttribute("name", "wangwu", PageContext.SESSION_SCOPE); // session域存数据
pageContext.setAttribute("name", "tianqi", PageContext.APPLICATION_SCOPE); // servletContext域存数据
%>
<%=request.getAttribute("name") %>
<%=pageContext.getAttribute("name", PageContext.REQUEST_SCOPE)%>
<!-- findAttribute()根据域作用范围的大小,从小到大找name的值 -->
<!-- pageContext域<request域<session域<application域 -->
<%=pageContext.findAttribute("name") %>
<%
pageContext.getRequest(); // 通过pageContext获取到其他8大隐式对象。 开发框架时使用
pageContext.getOut();
%>
</body>
</html>