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 ...
随机推荐
- 如何用item pipeline(管道)清洗数据
版权声明:本文为博主原创文章,转载请注明出处:如果博客中有错误之处抑或有可以改进的地方,欢迎在评论区留言. https://blog.csdn.net/f156207495/article/detai ...
- KL散度的理解(GAN网络的优化)
原文地址Count Bayesie 这篇文章是博客Count Bayesie上的文章Kullback-Leibler Divergence Explained 的学习笔记,原文对 KL散度 的概念诠释 ...
- Jade学习(三)之语法规则下
jade可以自动识别单双标签 // 1.jade内容: input(type="button", value="点击") div // 此时输出❌error:i ...
- 使用CXF开发WebService程序的总结(五):基于Map数据类型处理的的客户端和服务端代码的编写
1. 首先我们按照List或数组等处理方式来处理Map,看看效果 1.1 在服务端的接口中添加以下方法 /** * 查询所有班级信息加上对应的学生列表 * * @return */ public Ma ...
- 【检测工具】keepalived安装及配置
一.keepalived安装 keepalived是一个检测服务器状态的脚本,在高可用机制上经常可以看到它的身影. 在Linux中安装keepalived: 1.在网上直接下载相应的压缩包,推荐链接 ...
- killall - 以名字方式来杀死进程
SYNOPSIS (总览) killall [-egiqvw] [-signal] name ... killall -l killall -V DESCRIPTION (描述) killall 发送 ...
- nginx的rewrite
nginx服务的rewrite nginx后端服务的指令 1)upstream指令 :设置后端服务器组的主要指令 Upstream name {} 2)server指令:用于设定组内的服务器 3)Ip ...
- ifconfig命令返回找不到“-bash: ifconfig: command not found”
“-bash: ifconfig: command not found“因为系统没有安装net-tools yum -y install net-tools
- Spring MVC文件上传下载(转载)
原文地址: http://www.cnblogs.com/WJ-163/p/6269409.html 上传参考 http://www.cnblogs.com/lonecloud/p/5990060.h ...
- java 集合之ArrayList、Vector、LinkedList、CopyOnWriteArrayList
ArrayList 线程不安全. 底层Object[]数组实现,用transient关键字修饰,防止序列化,然后重写了readObject和writeObject方法,为了提高传输效率. 插入时会判断 ...