和属性相关的方法
- Object getAttribute(String name):获取指定的属性;
- Enumeration getArrtibuteNames();获取所有的属性名字组成的Enumeration对象;
- setAttribute(String name,Object o):设置属性;
- removeAttribute9(String name):移除指定的属性;
pageContext,request,session,application对象都有这些方法;这四个对象也称之为域对象;
pageContext:属性的作用于范围仅限于当前JSP页面;
request:属性的作用于范围仅限于同一个请求;
session:属性的作用于范围限制于一次会话;浏览器打开直到关闭称之为一次会话;
applicaiton:属性的作用范围限制于当前WEB应用;是范围最大的属性作用范围,只要在一处设置属性,在其它各处的JSP或SERVLER中都可以获取到;
<%
pageContext.setAttribute("pageContextAttr","pageContextValue");
request.setAttribute("requestAttr","requestValue");
session.setAttribute("sessiontAttr","sessionValue");
application.setAttribute("applicationAttr","applicationValue");
%>
<br><br>
pageContextAttr:<%=pageContext.getAttribute("pageContextAttr")%>
<br><br>
request:<%=request.getAttribute("requestAttr")%>
<br><br>
session:<%=session.getAttribute("sessionAttr")%>
<br><br>
application:<%=application.getAttribute("application")%>
访问各个域范围中的属性
在application、session、request、pageContext对象中都可以调用setAttribute方法和getAttribute方法来设置和检索各自域范围内的属性。
存储在application对象中的属性可以被同一个WEB应用程序中的所有Servlet和JSP页面访问。
存储在session对象中的属性可以被属于同一个会话的所有Servlet和JSP页面访问。
存储在request对象中的属性可以被属于同一个请求的所有Servlet和JSP页面访问,例如使用PageContext.forward和PageContext.include方法连接起来的多个Servlet和JSP页面。
存储在pageContext对象中的属性仅可以被当前JSP页面的当前响应过程中调用的各个组件访问,例如,正在响应当前请求的JSP页面和它调用的各个自定义标签类。
PageContext类中还提供了对各个域范围的属性进行统一管理的方法,以简化对各个域范围内的属性的访问。
pageContext对象
pageContext对象封装了当前JSP页面的运行信息,它提供了返回JSP页面的其他隐式对象的方法。
PageContext类中定义了一个setAttribute方法来将对象存储进pageContext对象内部的一个HashMap对象中,同时也定义了一个getAttribute方法来检索存储在该HashMap对象中的对象。
PageContext类除了可以存储和检索自身中的属性对象外,还定义了可以存储和检索其他域范围内的属性对象的方法。
获得其他隐式对象
- getException方法返回exception隐式对象
- getPage方法返回page隐式对象
- getRequest方法返回request隐式对象
- getResponse方法返回response隐式对象
- getServletConfig方法返回config隐式对象
- getServletContext方法返回application隐式对象
- getSession方法返回session隐式对象
- getOut方法返回out隐式对象