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)的更多相关文章

  1. page,request,session,application四个域对象的使用及区别

    转自:page,request,session,application四个域对象的使用及区别 1.page指当前页面.只在一个jsp页面里有效 .2.request 指从http请求到服务器处理结束, ...

  2. java web作用域page request session application

    转载自:http://blog.csdn.net/wyd458549392147/article/details/6944481 1.page指当前页面.只在一个jsp页面里有效 . 2.reques ...

  3. Spring -10 -<bean>的 scope 属性 -singleton 默认值/prototype 多例 /request /session /application /global session

    1.<bean>的属性; 2.作用:控制对象有效范围(单例,多例等)3.<bean/>标签对应的对象默认是单例的. 3.1无论获取多少次,都是同一个对象 Teacher t1 ...

  4. SP四种作用范围pageContext、request、session、application 一看就懂

      作用域规定的是变量的有效期限: 1.如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里. 从把变量放到pageContext开始,到jsp页面结束 ...

  5. JSP内置对象--4种属性范围 (pageContext,request,session,application)

    pageContext: javax.servlet.jsp.JspContext抽象类的父类JspContext 中有以下方法. request:javax.servlet.http.的接口Http ...

  6. jsp中的四种对象作用域

    page:当前页面,也就是只要挑到别的页面就失效了,可以近似理解为java的this对象 request:一次会话,简单的理解就是一次请求范围内有效,例如如果通过forward方式跳转,则forwar ...

  7. IOS四种保存数据的方式

    在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeyed ...

  8. IOS 四种保存数据的方式

    在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeyed ...

  9. python面对对象编程-------5:获取属性的四种办法:@property, __setattr__(__getattr__) ,descriptor

    一:最基本的属性操作 class Generic: pass g= Generic() >>> g.attribute= "value" #创建属性并赋值 > ...

随机推荐

  1. modal template

    <div class="modal fade" id="tmp_order_modal" tabindex="-1" role=&qu ...

  2. nginx 刷新显示404

    HTML5 History 模式 vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载. 如果不想要很丑的 ...

  3. Postman 测试swagger类接口技巧

    测试情景: 公司的项目接口越来越多,由于开发周期短,时间紧,缺乏接口文档,直接使用swagger记录所有接口信息.那么: 1. 我们如何更快的测试动辄300+数量的接口,如何分组管理和维护这些接口? ...

  4. WebForm从客户端中检测到有潜在危险的Request.Form 值的处理办法

    从客户端中检测到有潜在危险的 Request.Form 值由于在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值.立马报错上面的错误. 如:在网页的Te ...

  5. 今天清理C盘空间,发现Unity的一个问题

    C:\Users\Acer\AppData\LocalLow\Unity\Caches\GiCache AppData目录下,Unity占用了大量C盘空间,大概有5,6个G

  6. 大数据入门推荐 - 数据之巅 大数据革命,历史、现实与未来等五本PDF

    扫码时备注或说明中留下邮箱付款后如未回复请至https://shop135452397.taobao.com/联系店主

  7. Netty实践一(数据通信)

    我们需要了解下在真正项目应用中如何去考虑Netty的使用,大体上对于一些参数设置都是根据服务器性能决定的.这个不是最主要的. 我们需要考虑的问题是两台机器(甚至多台)使用Netty的怎样进行通信,大体 ...

  8. php cli命令 自定义参数传递

    所有的PHP发行版,不论是编译自源代码的版本还是预创建的版本,都在默认情况下带有一个PHP可执行文件.这个可执行文件可以被用来运行命令行的PHP程序.要在你的系统上找到这个可执行文件,就要遵照下面的步 ...

  9. [剑指Offer]42-连续子数组的最大和(DP)

    题目链接 https://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484?tpId=13&tqId=11183&t ...

  10. [Java学习]面向对象-package;内部类;UML图表示六种关系

    package 软件包 类名前加入命名空间(包),解决命名冲突问题. 定义格式:公司域名倒叙.项目名.模块名; package语句写在文件第一行 使用import语句导入package java.la ...