JSP属性的四种保存范围(page request session application)
JSP提供了四种属性的保存范围,分别为page、request、session、application
其对应的类型分别为:PageContext、ServletRequest、HttpSession、ServletContext
page范围:属性只在一个页面有效,页面跳转之后无效。
可通过内置对象pageContext的setAttribute(name, value)方法设置属性,getAttribute(name)方法获取属性。
pageContext是javax.servlet.jsp.PageContext抽象类类型
<!-- 设置属性 -->
<%
pageContext.setAttribute("name", "leon");
%>
<!-- 获取属性 -->
<%
String str = (String) pageContext.getAttribute("name");
%>
request范围:属性在一个请求范围内有效,服务器跳转后<jsp:forword>有效,但客户端跳转后无效。
可通过内置对象request的setAttribute(name, value)方法设置属性,getAttribute(name)方法获取属性
request是javax.servlet.http.HttpServletRequest接口类型
也可通过内置对象pageContext的setAttribute(name, value, scope)方法设置属性,setAttribute(name, value, scope)方法获取属性
<!-- 设置属性 -->
<%
request.setAttribute("name", "James");
pageContext.setAttribute("name", "james", pageContext.REQUEST_SCOPE)
%>
<!-- 获取属性 -->
<%
String str = (String) request.getAttribute("name");
String str = (String) pageContext.getAttribute("name", pageContext.REQUEST_SCOPE())
%>
session范围:属性只在一个会话范围内有效,服务器跳转和客户端跳转都有效,但网页关闭重新打开后无效
可通过内置对象session的setAttribute(name, value)方法设置属性,getAttribute(name)方法获取属性
session是javax.servlet.http.HttpServletsession接口类型
也可通过内置对象pageContext的setAttribute(name, value, scope)方法设置属性,getAttrubute(name, scope)方法获取属性
<!-- 设置属性 -->
<%
session.setAttribute("name", "James");
pageContext.setAttribute("name", "James", pageContext.SESSION_SCOPE)
%>
<!-- 获取属性 -->
<%
String str = (String) session.getAttribute("name");
String str = (String) pageContext.getAttribute("name", pageContext.SESSION_SCOPE)
%>
application范围:属性在整个服务器上都有效,所有用户都可以使用,重启服务器后无效
注意:如果设置过多的application属性范围会影响服务器的性能。
可通过内置对象application的setAttribute(name, value)方法设置属性,getAttribute(name)方法获取属性
application是javax.servlet.ServletContext接口类型
也可通过内置对象pageContext.setAttribute(name, value, scope)方法设置属性,getAttribute(name, scope)方法获取属性
<!-- 设置属性 -->
<%
application.setAttribute("name", "James");
pageContext.setAttribute("name", "James", pageContext.APPLICATION_SCOPE)
%>
<!-- 获取属性 -->
<%
String str = (String) application.getAttribute("name");
String str = (String) pageContext.getAttribute("name", pageContext.APPLICATION_SCOPE);
%>
移除属性
可通过相应内置对象的removeAttribute(name)方法移除指定属性
也可通过pageContext.removeAttribute(name, scope)方法移除指定属性
JSP属性的四种保存范围(page request session application)的更多相关文章
- page,request,session,application四个域对象的使用及区别
转自:page,request,session,application四个域对象的使用及区别 1.page指当前页面.只在一个jsp页面里有效 .2.request 指从http请求到服务器处理结束, ...
- java web作用域page request session application
转载自:http://blog.csdn.net/wyd458549392147/article/details/6944481 1.page指当前页面.只在一个jsp页面里有效 . 2.reques ...
- Spring -10 -<bean>的 scope 属性 -singleton 默认值/prototype 多例 /request /session /application /global session
1.<bean>的属性; 2.作用:控制对象有效范围(单例,多例等)3.<bean/>标签对应的对象默认是单例的. 3.1无论获取多少次,都是同一个对象 Teacher t1 ...
- SP四种作用范围pageContext、request、session、application 一看就懂
作用域规定的是变量的有效期限: 1.如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里. 从把变量放到pageContext开始,到jsp页面结束 ...
- JSP内置对象--4种属性范围 (pageContext,request,session,application)
pageContext: javax.servlet.jsp.JspContext抽象类的父类JspContext 中有以下方法. request:javax.servlet.http.的接口Http ...
- jsp中的四种对象作用域
page:当前页面,也就是只要挑到别的页面就失效了,可以近似理解为java的this对象 request:一次会话,简单的理解就是一次请求范围内有效,例如如果通过forward方式跳转,则forwar ...
- IOS四种保存数据的方式
在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeyed ...
- IOS 四种保存数据的方式
在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeyed ...
- python面对对象编程-------5:获取属性的四种办法:@property, __setattr__(__getattr__) ,descriptor
一:最基本的属性操作 class Generic: pass g= Generic() >>> g.attribute= "value" #创建属性并赋值 > ...
随机推荐
- VUE 关于理解$nextTick()的问题
Vue.js 通常鼓励开发人员沿着“数据驱动”的方式思考,避免直接接触 DOM.this.$nextTick()官方介绍:将回调延迟到下次 DOM 更新循环之后执行.在修改数据之后立即使用它,然后等待 ...
- 2018面向对象程序设计(Java)第1周学习指导及要求
2018面向对象程序设计(Java) 第1周学习指导及要求(2018.8.24-2018.9.2) 学习目标 了解课程上课方式及老师教学要求,掌握课程学习必要的软件工具: 简单了解Java特点及历 ...
- linux下面设置密码失效参考
chage -E 2005-12-31 user1 设置用户口令的失效期限
- 03_java基础(七)之面向对象
16.封装查询结果对象 封装简单粗暴的理解就是:假设你在超市买苹果,买一个你可以一个手拿走,买两个你可以用两只手拿走,但是如果买了20个勒,咋办勒,那就用一个袋子装起来!这就 封装思想. 1.封装一个 ...
- React Mixins
[React Mixins] ES6 launched without any mixin support. Therefore, there is no support for mixins whe ...
- python-ceilometerclient命令行(2)
命令行解析工具argparse argparse是python标准库中的模块,利用argparse,可以完成对命令行的参数定义.解析以及后续的处理.一个简单的例子: # coding:utf-8 im ...
- 第三篇:jmeter的作用域和执行顺序
1.元件的作用域: 8类可执行的元件,testplan和threadgroup不属于可执行的元件:这些元件中,取样器,是典型的不与其他元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效,而其他 ...
- javascript学习笔记(二):定义函数、调用函数、参数、返回值、局部和全局变量
定义函数.调用函数.参数.返回值 关键字function定义函数,格式如下: function 函数名(){ 函数体 } 调用函数.参数.返回值的规则和c语言规则类似. <!DOCTYPE ht ...
- python全栈 流程控制;while 循环 格式化输出 运算符 及编码
python全栈开发 1循环 2break和continue的区别 3格式化输出 4运算符 5编码 一.流程控制while循环 while条件: 代码块(循环体) 1.死循环; while True; ...
- Android学习路-activity活动
activity即活动,是一种包含用户界面的组件,用于与用户进行交换 创建activity类 1.类继承Activity, activity传递一个bundle对象,可以获得onSaveInsta ...