JSP中的四种属性范围(重点)
2013-01-14 00:13
411 查看
3.1、四种属性范围(重点)
所谓的属性范围,就是指一个对象可以跨多少个JSP页面之后可以继续使用。3.1.1、操作方法
在整个JAVA WEB中属性操作使用如下的方法:· 设置属性:public void setAttribute(String name,Object attribute)
· 取得属性:public Object getAttribute(String name)
· 删除属性:public Object removeAttribute(String name)
在JSP中有以下四个对象都支持以上的三个方法:
· page(pageContext)
· request
· session
· application
3.1.2、page属性范围
在一个JSP页面上设置的属性只能在一个页面取得,跳转到其他页面则此属性消失。PageScopeDemo01.jsp[/b]:[/b]
<%@page contentType="text/html;charset=GBK"%> <%@page import="java.util.*"%> <% // 设置两个属性 pageContext.setAttribute("uname","HELLO") ; pageContext.setAttribute("udate",new Date()) ; // 取得属性 String name = (String)pageContext.getAttribute("uname") ; Date date = (Date)pageContext.getAttribute("udate") ; %> <h1>name --> <%=name%></h1> <h1>date --> <%=date%></h1> |
PageScopeDemo02.jsp[/b]:[/b]
<%@page contentType="text/html;charset=GBK"%> <%@page import="java.util.*"%> <% // 设置两个属性 pageContext.setAttribute("uname","HELLO") ; pageContext.setAttribute("udate",new Date()) ; %> <jsp:forward page="PageScopeDemo03.jsp"/> |
<%@page contentType="text/html;charset=GBK"%> <%@page import="java.util.*"%> <% // 取得属性 String name = (String)pageContext.getAttribute("uname") ; Date date = (Date)pageContext.getAttribute("udate") ; %> <h1>name --> <%=name%></h1> <h1>date --> <%=date%></h1> |
3.1.3、request属性范围
request可以把属性保存在一次服务器跳转范围之中。RequestScopeDemo01.jsp[/b]:[/b]
<%@page contentType="text/html;charset=GBK"%> <%@page import="java.util.*"%> <% // 设置两个属性 request.setAttribute("uname","HELLO") ; request.setAttribute("udate",new Date()) ; %> <jsp:forward page="RequestScopeDemo02.jsp"/>[/b] |
<%@page contentType="text/html;charset=GBK"%> <%@page import="java.util.*"%> <% // 取得属性 String name = (String)request.getAttribute("uname") ; Date date = (Date)request.getAttribute("udate") ; %> <h1>name --> <%=name%></h1> <h1>date --> <%=date%></h1> |
RequestScopeDemo03.jsp[/b]:[/b]
<%@page contentType="text/html;charset=GBK"%> <%@page import="java.util.*"%> <% // 设置两个属性 request.setAttribute("uname","HELLO") ; request.setAttribute("udate",new Date()) ; %> <a href=\'#\'" /a>[/b] |
如果现在希望无论怎样跳转,属性都可以被保存下来,则就要扩大到session范围
3.1.4、session属性范围
session属性范围无论页面怎样跳转,都可以保存下来,但是只针对于同一个浏览器打开的相关页面。SessionScopeDemo01.jsp[/b]:[/b]
<%@page contentType="text/html;charset=GBK"%> <%@page import="java.util.*"%> <% // 设置两个属性 session.setAttribute("uname","HELLO") ; session.setAttribute("udate",new Date()) ; %> <a href=\'#\'" /a> |
<%@page contentType="text/html;charset=GBK"%> <%@page import="java.util.*"%> <% // 取得属性 String name = (String)session.getAttribute("uname") ; Date date = (Date)session.getAttribute("udate") ; %> <h1>name --> <%=name%></h1> <h1>date --> <%=date%></h1> |
3.1.5、application属性范围
application范围,是把属性设置在整个服务器上,所有的用户都可以进行访问。ApplicationScopeDemo01.jsp[/b]:[/b]
<%@page contentType="text/html;charset=GBK"%> <%@page import="java.util.*"%> <% // 设置两个属性 application.setAttribute("uname","HELLO") ; application.setAttribute("udate",new Date()) ; %> |
<%@page contentType="text/html;charset=GBK"%> <%@page import="java.util.*"%> <% // 取得属性 String name = (String)application.getAttribute("uname") ; Date date = (Date)application.getAttribute("udate") ; %> <h1>name --> <%=name%></h1> <h1>date --> <%=date%></h1> |
3.1.6、pageContext对象的补充
JSP中如果要想设置一个page范围的属性则一定使用pageContext对象,实际上对于整个JSP代码,所有的四种属性范围都是可以通过pageContext对象进行设置的,因为在此对象中的设置属性方法有两个:· public void setAttribute(String name,Object attribute) à 设置的属性默认为page范围
· public void setAttribute(String name,Object o,int scope) à 可以指定属性的范围
|- 在PageContext类中提供了以下几个常量:
|- 表示page范围:public static final int PAGE_SCOPE
|- 表示request范围:public static final int REQUEST_SCOPE
|- 表示session范围:public static final int SESSION_SCOPE
|- 表示application范围:public static final int APPLICATION_SCOPE
下面通过pageContext对象设置一个request范围的属性
RequestScopeDemo04.jsp[/b]:[/b]
<%@page contentType="text/html;charset=GBK"%> <%@page import="java.util.*"%> <% // 设置两个属性 pageContext.setAttribute("uname","HELLO",PageContext.REQUEST_SCOPE) ; pageContext.setAttribute("udate",new Date(),PageContext.REQUEST_SCOPE) ; %> <jsp:forward page="RequestScopeDemo02.jsp"/> |
· 因为四种属性范围的保存时间不同,所以占用内存的时间也就不同了,能使用request就不要使用session,一般情况下,request和session两个属性范围使用的频率是最高的。
相关文章推荐
- JSP中的四种属性范围(重点) 推荐
- jsp四种属性范围
- Jsp学习总结(1)——JSP九大内置对象和四种属性范围解读
- jsp--page指令 九个内置对象 四种属性范围 两种跳转的区别
- JSP 内置对象的四种属性范围
- JSP四种属性范围
- JSP的四种属性范围
- JSP 内置对象的四种属性范围
- JSP内置对象的四种属性范围
- JSP 内置对象的四种属性范围
- JSP中四种属性范围
- JSP中四种属性范围
- 再次复习jsp中的四种属性范围
- javaBean=====jsp与javaBean中四种属性保存范围的区别
- Jsp四种内置对象的属性范围
- JSP中九大内置对象和四种属性范围详解
- JSP的四种页面属性范围
- jsp中提供的四种属性范围
- 四种属性范围(重点)
- jsp 中提供四种属性范围