jsp四种属性范围
在JSP提供了四种属性的保存范围。所谓的属性保存范围,指的就是一个设置的对象,可以在多个页面中保存并可以继续使用。它们分别是:page、request、session、appliction。
1、page属性范围(pageContext范围)当前页面
page属性范围(使用pageContext表示,但一般来讲习惯于将这种范围称为page范围)只在一个页面范 围内有效,不能发生跳转,也就是说,在跳转到另一个页面后,就不能取得它的属性了。
单页面:
设置和取得page范围的属性
1 <% // 设置page的属性范围,此属性只在当前JSP页面中起作用
pageContext.setAttribute("name", "李华");
pageContext.setAttribute("age", "18");
%>
<% // 从page属性范围中取出属性,并执行向下转型操作
String username =(String) pageContext.getAttribute("name");
String userage =(String) pageContext.getAttribute("age");
%> <h3>姓名:<%=username %></h3> <!-- 输出取得的属性内容 -->
<h3>年龄:<%=userage %></h3> <!-- 输出取得的属性内容 -->

可行!!
双页面:
在test.jsp页面设置page范围的属性
<% // 设置page的属性范围,此属性只在当前JSP页面中起作用
pageContext.setAttribute("name", "李华");
pageContext.setAttribute("age", "18");
%>
<jsp:forward page="forward.jsp"> 在forward.jsp页面取得page范围的属性
<% //从page属性范围中取出属性,并执行向下转型操作
String username =(String) pageContext.getAttribute("name");
String userage =(String) pageContext.getAttribute("age");
%> <h3>姓名:<%=username %></h3> <!-- 输出取得的属性内容 -->
<h3>年龄:<%=userage %></h3> <!-- 输出取得的属性内容 -->

错误!!
2、request属性范围(一次请求)
如果要在服务器跳转,也就是请求转发(<jsp:forward page="forward.jsp">这种方式;)之后属性可以继续保存下来,则可以使用request属性范围操作,request属性范围表示的是在服务器跳转之后,所有设置的内容在下一个页面依然会被保留下来。
服务器跳转:
// 在test.jsp中设置request范围的属性
<% // 设置request的属性范围,此属性只在服务器跳转中起作用
request.setAttribute("name", "李华");
request.setAttribute("age", "18");
%>
<jsp:forward page="forward.jsp"> // 在forward.jsp中取得request范围的属性 <% //从request属性范围中取出属性,并执行向下转型操作
String username =(String) request.getAttribute("name");
String userage =(String) request.getAttribute("age");
%> <h3>姓名:<%=username %></h3> <!-- 输出取得的属性内容 -->
<h3>年龄:<%=userage %></h3> <!-- 输出取得的属性内容 -->

可行!!
使用超链接跳转(可以理解为重定向):
// 在test.jsp中设置request范围的属性
<% // 设置request的属性范围,此属性只在服务器跳转中起作用
request.setAttribute("name", "李华");
request.setAttribute("age", "18");
%>
<!-- 跳转后,地址栏改变,属于客户端跳转 -->
<a href = "forward.jsp">超链接获取属性</a> // 在forward.jsp中取得request范围的属性 <% //从request属性范围中取出属性,并执行向下转型操作
String username =(String) request.getAttribute("name");
String userage =(String) request.getAttribute("age");
%> <h3>姓名:<%=username %></h3> <!-- 输出取得的属性内容 -->
<h3>年龄:<%=userage %></h3> <!-- 输出取得的属性内容 -->

错误!!
关于request属性范围的理解
request表示的是客户端的请求,正常情况下,一次请求服务器只会给予一次回应,那么这个时候如果是服务器跳转,请求的地址栏没有改变,所以也就相当于回应了一次,而如果地址栏改变了,就相当于是发出了第二次请求,则第一次请求的内容肯定就已经消失了,所以无法取得。
session属性范围(一次会话)
如果现在希望一个属性设置之后,可以再任何一个与设置页面相关的页面取得的话,则就可以使用session属性范围,使用session设置属性之后,不管是客户端还是服务器端跳转,只要属性设置了就都可以取得。(以下就不举例子,只需将上述两个里面的pageContext或request换成session即可)
application属性范围(一个项目)
如果现在希望设置一个属性,可以让所有的用户(每一个session)都能看得见的话,则可以将属性范围设置成application,这样属性就保存在了服务器之上。
一般地,如果能使用request就尽量不要使用session,能使用session就尽量不要使用application
jsp四种属性范围的更多相关文章
- JSP九大内置对象和四种属性范围解读
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文首先主要解说了JSP中四种属性范围的概念.用法与实例. 然后在这个基础之上又引入了九 ...
- Jsp学习总结(1)——JSP九大内置对象和四种属性范围解读
一.四种属性范围 1.1.在JSP中提供了四种属性保存范围 page:在一个页面内保存属性,跳转之后无效 request:在一次服务请求范围内,服务器跳转后依然有效 session:-在一次会话范围内 ...
- JSP中四种属性保存范围(1)
一.四种属性范围 在JSP中提供了四种属性保存范围 page:在一个页面内保存属性,跳转之后无效request:在一次服务请求范围内,服务器跳转后依然有效session:-在一次会话范围内,无论何种跳 ...
- css样式表中四种属性选择器
学习此连接的总结http://developer.51cto.com/art/201009/226158.htmcss样式表中四种属性选择器1> 简易属性 tag[class]{ font-we ...
- position中的四种属性
Position有四个属性值,分别是static .fixed. relative .absolute. 第一个属性值是static,这是position的默认属性,一般我们都不会用到它,所以也很少提 ...
- JSP 内置对象的四种属性范围
在jsp页面中的对象,包括用户创建的对象(例如,javaBean对象)和JSP的隐含对象,都有一个范围属性.范围定义了在什么时间内,在哪一个JSP页面中可以访问这些对象.例如,session对象在会话 ...
- JSP中四种属性保存范围(2)
1.session <%@ page language="java" contentType="text/html" pageEncoding=" ...
- jsp中提供的四种属性范围
参考:http://www.cnblogs.com/xdp-gacl/p/3781056.html 1.当前页:一个属性只能在一个页面中取得,跳转到其他页面无法取得 2.一次服务器请求:一个页面中设置 ...
- Bitmap四种属性
http://blog.csdn.net/rabbit_in_android/article/details/49967461 Bitmap: (1) public Bitmap (int w ...
随机推荐
- selenium与页面交互之一:webdriver浏览器的属性
selenium提供了许多API方法与页面进行交互,如点击.键盘输入.打开关闭网页.输入文字等. webdriver对浏览器提供了很多属性来对浏览器进行操作,常用的如图: get(url).quit( ...
- 07.AutoMapper 之列表和数组(Lists and Arrays)
https://www.jianshu.com/p/419a3b7f12d5 列表和数组(Lists and Arrays) AutoMapper只需要配置元素类型的映射配置,不需要针对列表和数组进行 ...
- vue与react对比
相同点 1.都使用 virtual DOM 2.都是组件化开发 or 都提供了组件化的视图组件 3.数据的改变会引起视图的二次渲染 4.都只有骨架,其他的功能如路由.状态管理等是框架分离的组件. 5. ...
- Delphi 语句
- win10将mongodb加入系统服务,官方源码报错问题记录
进入C:\Program Files\MongoDB\Server\3.6目录下 1.编写配置文件mongodb.cfg: dbpath=D:\MongoDB\data\db #数据库路径 logpa ...
- mac下phpize编译提示Cannot find autoconf解决办法
mac下phpize编译如下报错: /usr/bin/phpizeConfiguring for:PHP Api Version: 20121113Zend Module Api No: 201212 ...
- VCL界面控件DevExpress VCL Controls发布v19.1.2|附下载
DevExpress VCL Controls是 Devexpress公司旗下最老牌的用户界面套包.所包含的控件有:数据录入,图表,数据分析,导航,布局,网格,日程管理,样式,打印和工作流等,让您快速 ...
- sevlet
https://blog.csdn.net/Mithrandir_One/article/details/52900425 大家现在做的比较多的基本上就是 web 应用.所以一定要把 sevlet 及 ...
- Vue项目的痛点
前言 用Vue做项目,难免会有痛点,移动端还是PC端,我也总结了下关于问题: 进入详情页的传参问题. 服务器接口跨域 axios封装请求 UI库的按需加载 如何只在当前页面中覆盖ui库中组件的样式 定 ...
- 【NOIP2016提高A组集训第1场10.29】完美标号
题目 给定M个二元组(A_i, B_i),求X_1, ..., X_N满足:对于任意(A_i, B_i),有|X_{A_i} - X_{B_i}| = 1成立. 分析 显然,对于二元组(x,y),X_ ...