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 ...
随机推荐
- AtCoder Beginner Contest 072
这应该是我第二次打AtCoder, 题目其实并不难,就是自己经验不足想复杂了,再加上自己很笨,愣是做了97分钟才全做出来(最后三分钟,有点小激动..),看着前面大牛半个小时都搞完了,真心膜拜一下,代码 ...
- bind函数作用、应用场景以及模拟实现
bind函数 bind 函数挂在 Function 的原型上 Function.prototype.bind 创建的函数都可以直接调用 bind,使用: function func(){ consol ...
- cs244a-Introduction to Computer Networking-Unit1
Unit 1 学习目标: how an application use the Internet The structure of the Internet:The 4 layer model The ...
- SQL注入的一些技巧分享
先上一道简单的ctf注入题: 一道利用order by进行注入的ctf题 很不错的一道利用order by的注入题,之前不知道order by除了爆字段还有这种操作. 原题地址:http://chal ...
- js将时间戳转化为年月日时分秒
export const dateFormatter = (nows) => { if (!nows) return '' var now = new Date(nows) var year = ...
- vue项目报错1 Vue is a constructor and should be called with the `new` keyword && jquery.js?eedf:3850 Uncaught TypeError: this._init is not a function...
Vue is a constructor and should be called with the `new` keyword Uncaught TypeError: this._init is n ...
- JS 的 Element元素对象
在 HTML DOM 中, 元素对象代表着一个 HTML 元素. 元素对象 的 子节点可以是, 可以是元素节点,文本节点,注释节点. NodeList 对象 代表了节点列表,类似于 HTML元素的子节 ...
- 错误代码errno值的含义
错误代码errno值的含义 查看错误代码errno是调试程序的一个重要方法.当C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义, ...
- Solr IK分词器配置
下载地址:https://search.maven.org/search?q=com.github.magese 分词器配置: 参考:https://www.cnblogs.com/mengjinlu ...
- thinkphp+webuploader实现大文件分片上传
大文件分片上传,简单来说就是把大文件切分为小文件,然后再一个一个的上传,到最后由这些小文件再合并成原来的文件 webuploader下载地址及其文档:http://fex.baidu.com/webu ...