【pageContext对象】
//可以存储变量 注意:这种存储方式只能在本页面获取,其他页面无法获取。
pageContext.setAttribute("name", "孙悟空");
//获取方法为:
String name =(String)pageContext.getAttribute("name");
操作其他的三个与对象(ServletRequest HTTPSession ServletContext中的数据)
void setAttribute(String key,Object value,int scope);
void removeAttribute(String key,int scope);
Object getAttribute(String key,int scope);
scope:
PageContext.PAGE_SCOPE 页面范围
PageContext.REQUEST_SCOPE 请求范围
PageContext.SESSION_SCOPE
会话范围
PageContext.APPLICATEION_SCOPE 应用范围
【pageContext.findAttribute(String)】可以从4个与对象中寻找指定值。找不到,会报错
即:
pageContext.setAttribute("name", "孙悟空");
session.setAttribute("name4", "白龙马");
application.setAttribute("name2", "唐僧");
request.setAttribute("name3", "沙和尚");
【pageContext:获取其他8个对象】
<%
//pageContext获取其他8个对象
ServletContext servletContext01=pageContext.getServletContext();
ServletConfig config01=pageContext.getServletConfig();
HttpSession session01=pageContext.getSession();
PrintWriter out01=pageContext.getResponse().getWriter();
HttpServletRequest request01=(HttpServletRequest)pageContext.getRequest();
HttpServletResponse response01=(HttpServletResponse)pageContext.getResponse();
Object page01=this;
%>
【pageContext:请求转发与包含】
<%
//pageContext对象:请求转发和请求包涵
request.setAttribute("sname", "张三丰");
//请求转发
//pageContext.forward("/jsp/JPageContext03.jsp");
//请求包含
pageContext.include("/jsp/JPageContext03.jsp");
%>
附加jsp四大对象
PageContext:页面范围的数据。用的少
ServletRequest:请求范围的数据。用的多。显示一次数据后就没有用了。这样的数据就可以放到该范围中
HttpSession: 会话范围的数据。用的多,每次请求和响应都需要共享的数据。可以保存登录信息
ServletContext:应用范围的数据。用的不多。所有客户端都共享的信息。注意同步。