jsp jsp属性范围
jsp提供了4中属性分别是
当前页:一个属性只能在一个页面中取得,跳转淘其他页面无法取得。
一次服务器请求:一个页面中设置的属性,只要经过了服务跳转,而跳转之后的页面可以继续取得
一次回话:一个用户设置的内容,只要是此用户页面都可以访问
上下文中:整个服务器上设置的属性,所有都可以访问
属性的操作方法
setAttribute(name,value)
getAttribute(name)
removeAttribute(name)
page属性范围
page属性范围相对好理解一些:在一个页面设置的属性,跳转到其他页面就无法访问了。但是在使用page属性范围的时候必须要注意,虽然习惯上将范围属性称为page属性,但是实际上操作的时候使用pageContext内置对象完成的。

从该操作流程图上可以看出,第一个页面设置属性经过服务跳转到第二个页面以后,在第二个页面是无法取得第一个页面中设置的属性的。就好比现在坐着的桌子上有一只笔,但是一旦离开这张桌子,做到别的桌子上,笔就没有了。
1) 在同一个页面中可以获取pageContext中设置的内容
<%@ 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>
<%
pageContext.setAttribute("name", "我爱杭州");
%>
<%= pageContext.getAttribute("name") %> (输出信息--》我爱杭州)
</body>
</html>
2) 在page中设置属性 然后 forword 到page2,在page2中无法获取pageContext中设置信息
page.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>
<% pageContext.setAttribute("name", "我爱杭州"); %>
</body>
<jsp:forward page="/WEB-INF/range/page2.jsp"></jsp:forward>
</html>
page2.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%= pageContext.getAttribute("name") %>
</body>
</html>
pageContext的属性设置
pageContext,request,session,application,四种属性范围实际上都是通过pageContext范围来设置的
pageContext继承了JspContext,在JspContext的setAttribute()方法如下:
setAttribute(String name,Object value, int scope)
这个setAttribute()方法如果右面不写int类型的SCOPE参数,则此参数默认为PAGE_SCOPE,如果传递过来的是int类型的参数REQUEST_SCOPE
则此时的setAttibute()方法设置的就是request的属性范围。同样传递的是SESSION_SCOPE,APPLICATION_SCOPE,则表示session和application
的属性范围

request的属性
rqequet属性范围表示在一次服务器跳转中有效,只是服务器,则设置的request属性可以一直传递下去。

session属性范围
session设置的属性,不管是如何跳转,都可以取得的。当然session只针对一个用户。
session在一个页面上设置的属性,跳转(服务器跳转/客户端跳转)到其他页面之后,其他页面依然可以取得第一个页面上设置的属性。

application属性范围
application属性范围是服务器上设置的一个属性,所以一旦设置之后,任何用户都可以浏览到此属性

jsp jsp属性范围的更多相关文章
- javaweb之jsp的属性范围
1.什么是jsp的属性范围? 所谓的属性范围就是一个属性设置之后,可以经过多少个其他页面后仍然可以保存并继续使用.jsp提供了四种属性范围,如下: 当前页,对应的jsp对象为pageContext,属 ...
- JSP页面属性
一.JSP指令 <%@指令名属性名=属性值 %> page指令: 定义页面是如何解析 include指令: 静态包含 taglib指令: 在页面引入标签呢库. 1.page指令属性 imp ...
- jsp jsp标签
JSP标签页称为Jsp Action(JSP动作元素),用于在Jsp页面中提供业务逻辑功能,避免在Jsp页面中直接编写java代码,造成jsp页面难以维护. jsp常用标签 jsp:include标签 ...
- JavaWeb——JSP,JSP指令,注释
什么是JSP JSP原理 JSP页面中的java代码服务器是如何执行的 Web服务器在调用jsp时会给jsp提供一些什么java对象 JSP执行过程 JSP页面的元素包括 JSP模版元素 JSP脚本片 ...
- java.lang.NoClassDefFoundError: org/apache/jsp/jsp/Container_jsp
1.错误描述 八月 20, 2014 7:10:18 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.servi ...
- JSP JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术
JSP JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术.从这一点来看,非常类似Microsoft ASP.PHP等技术.借助形式上的内容和外观表现的分 ...
- JSP<jsp:forward>与<%@ include%>
JSP<jsp:forward>与<%@ include%><jsp:include> <jsp:forward file="forwardTo_p ...
- <jsp:include page="${pageContext.request.contextPath/index.jsp" ></jsp:include> 引发的错误
路径引发的错误 如下使用项目路径对jsp页面进行获取,会报javax.servlet.ServletException: File "/web/dbwx/web/public/page_to ...
- JSP基础——属性保存范围和request对象
JSP属性保存范围 JSP中提供了四种属性保存范围,分别为page,request,session及application. 1.page范围,指设置的属性只在当前页面有效.通过pageContext ...
随机推荐
- P4879 ycz的妹子
思路 让你干啥你就干啥呗 查询第x个妹子就get一下再修改 这里稳一点就维护了三个东西,也许两个也可以 代码 #include <iostream> #include <cstdio ...
- stm32 延时函数 delay_ms 范围
void delay_us(u32 nus) { u32 temp; SysTick->LOAD=nus*fac_us; //时间加载 SysTick->VAL=0x00; //清空计数器 ...
- HDU 3046 Pleasant sheep and big wolf(最小割最大流+Dinic)
http://acm.hdu.edu.cn/showproblem.php?pid=3046 题意: 给出矩阵地图和羊和狼的位置,求至少需要建多少栅栏,使得狼不能到达羊. 思路:狼和羊不能到达,最小割 ...
- hdu 5381 The sum of gcd 莫队+预处理
The sum of gcd Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) P ...
- hdu 1370 || poj 1006 简单的中国剩余定理或者暴力
Biorhythms Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Probl ...
- nginx configuration
Now that you know how to manage the service itself, you should take a few minutes to familiarize you ...
- Selenium 对窗口对HTML的操作举例
- Grasshopper操作shp
1 shp文件组件 提示ACE.OLEDB 未注册. 需要安装acess控件,https://www.microsoft.com/zh-CN/download/details.aspx?id=132 ...
- 【Golang】字符串首字母大小写转化
写在前面 在自动化过程中,我们用得最多的可能就是字符串的处理,熟悉Python的都知道在Python中要让一个字符串的首字母大写直接用capitalize就可以了,但是同样的事情在Golang中没有这 ...
- Codeforces 909C - Python Indentation
909C - Python Indentation 思路:dp. http://www.cnblogs.com/Leohh/p/8135525.html 可以参考一下这个博客,我的dp是反过来的,这样 ...