JSP四大作用域分别为:page, request ,session, application 。

第一个作用域是page,他只在当前页面有效,也就是用户请求的页面有效,当当前页面关闭或转到其他页面时,page对象将在响应回馈给客户端后释放。

第二个作用域是request,他在当前请求中有效,request可以通过setAttribute()方法实现页面中的信息传递,也可以通过forward()方法进行页面间的跳转,需要注意的是request是转发不是重定向,转发相对于浏览器来说是透明的,也就是无论页面如何跳转,地址栏上显示的依旧是最初的地址。

第三个作用域是session,他在当前回话中有效。当一个台电脑上的同一浏览器对服务器进行多次访问时,在这多次访问之间传递的信息就是session作用域的范围。它从浏览器发出第一个HTTP请求即可认为会话开始,但是会话结束的时间是不确定的,因为在浏览器关闭时并不会通知服务器,一般Tomcat设置的默认时间为120分钟,也可以通过setMaxInactiveInterval(int)方法进行设置,或是通过invalidate()方法强制结束当前会话。

第四个作用域是application,他在所有的应用程序中都有效,也就是当服务器开始到服务器结束这段时间,application作用域中存储的数据都是有效的,同样可以通过setAttribute赋值和getAttribute取值。

1.page的属性作用域

page,它只在当前页面有效,也就是用户请求的页面有效。但是在使用page属性范围的时候必须注意的是,虽然习惯上将页面范围的属性称为page范围,但是实际上操作的时候是使用pageContext内置对象完成的。

通过这里建立一个maven的web项目。

在index.jsp页面:

//此时设置的属性只能够在本页中取得

pageContext.setAttribute("name","哈哈哈哈"); //设置属性

pageContext.setAttribute("date",new Date()); //设置属性//注意:这里设置的两个属性的名字分别为name和date,这两个是字符串类型的数据,但对应的属性值MLDN和new Date这个两个值却不是字符串类型,而是两个Object类型的数据。

%>

//取得设置的属性

String name = (String)pageContext.getAttribute("name");//由于取得的值为Object类型,因此必须使用String强制向下转型,转换成String类型

Date date = (Date)pageContext.getAttribute("date");%>

姓名:

日期:

运行结果:

页设置的pageContext范围属性在本页确实可以取得。

在index.jsp加上一句:

pageSecond.jsp页面如下:

Date date= (Date)pageContext.getAttribute("date");%>

姓名:

日期:

结果:

页面跳转之后,获取不到属性了。如果现在希望跳转到其他页面之中,依然可以取得,则可以扩大属性范围,使用request属性范围即可。

2.request属性作用域

request属性范围表示在一次服务器跳转中有效,只要是服务器跳转,则设置的request属性可以一直传递下去。

index.jsp如下所示:

//此时设置的属性只能够在本页中取得

request.setAttribute("name","哈哈哈哈"); //设置属性

request.setAttribute("date",new Date()); //设置属性//注意:这里设置的两个属性的名字分别为name和date,这两个是字符串类型的数据,但对应的属性值MLDN和new Date这个两个值却不是字符串类型,而是两个Object类型的数据。

%>

//取得设置的属性

String name = (String)request.getAttribute("name");//由于取得的值为Object类型,因此必须使用String强制向下转型,转换成String类型

Date date = (Date)request.getAttribute("date");%>

姓名:

日期:

结果如图:

跳转到pageSecond.jsp之后,依然可以获得属性。不管多少个页面。

但是如果,此时使用了超链接的方式传递的话,则属性是无法向下继续传递的。

3.session属性作用域

session设置的属性不管如何跳转,都可以取得的。当然,session只针对一个用户

不管是采用页面跳转,还是超链接(相当于客户端跳转),在别的页面依然可以获取第一个页面的属性。但是新打开一个浏览器,则无法获取属性。

4.application属性作用域

因为application属性范围是在服务器上设置的一个属性,所以一旦设置之后任何用户都可以浏览到此属性。

5.pageContext属性作用域的进一步补充

PageContext类继承了JspContext类,所以在PageContext类中实现了抽象的setAttribute方法:

public abstract void setAttribute(String name,Object value,int scope)

这个setAttribute()方法如果不写后面的int类型的scope参数,则此参数默认为PAGE_SCOPE,则此时setAttribute()方法设置的就是page属性范围,如果传递过来的int类型参数scope为REQUEST_SCOPE,则此时setAttribute()方法设置的就是request属性范围,同理,传递的scope参数为SESSION_SCOPE和APPLICATION_SCOPE时,则表示setAttribute()方法设置的就是session属性范围和application属性范围。

比如index.jsp:

//此时设置的属性只能够在本页中取得

pageContext.setAttribute("name","哈哈哈哈",PageContext.REQUEST_SCOPE); //设置属性

pageContext.setAttribute("date",new Date(),PageContext.REQUEST_SCOPE); //设置属性//注意:这里设置的两个属性的名字分别为name和date,这两个是字符串类型的数据,但对应的属性值MLDN和new Date这个两个值却不是字符串类型,而是两个Object类型的数据。

%>

//取得设置的属性

String name = (String)pageContext.getAttribute("name");//由于取得的值为Object类型,因此必须使用String强制向下转型,转换成String类型

Date date = (Date)pageContext.getAttribute("date");%>

pageSecond.jsp:

Date date= (Date)pageContext.getAttribute("date",PageContext.REQUEST_SCOPE);%>

姓名:

日期:

跳转之后依然可以获取属性,pageContext相当于request。

参考: 这里

java作用域范围_JSP四大作用域属性范围相关推荐

  1. java equest 作用_JSP四大作用域及请求范围总结

    程序员在写代码的时候,难免会遇到作用域的问题,今天我们要谈的也是JSP的四大作用域.本文主要总结了JSP四大作用域page.request.session和application和它们的请求范围. 1 ...

  2. java四大作用域_java的四大作用域是什么?

    Java的四大作用域为:1.PageContext作用域:2.ServletRequest作用域:3.HttpSession作用域:4.ServletContext作用域. Java的四大作用域为:P ...

  3. java四大作用域_javaweb的四大作用域

    JavaWeb的四大作用域为:PageContext,ServletRequest,HttpSession,ServletContext: PageContext域:作用范围是整个JSP页面,是四大作 ...

  4. html四大作用域,jsp的四大作用域是什么

    jsp的四大作用域是:1.application 作用域.2.session作用域.3.request作用域.4.page作用域. 1.application 作用域 假如将变量放在applicati ...

  5. java 4大作用域_JavaWeb的四大作用域详解

    1.page指当前页面有效.在一个jsp页面里有效 2.request 指在一次请求的全过程中有效,即从http请求到服务器处理结束,返回响应的整个过程,存放在HttpServletRequest对象 ...

  6. JSP九大内置对象和四大作用域和Servlet的三大作用域对象

    一.JSP九大内置对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用 内置对象特点: 由JSP规范提供,不用编写者实例化. 通过Web容器实现和管理 所有 ...

  7. java的四大作用域_JSP中的四大作用域

    什么是作用域? 我们在写代码的时候,都会遇到变量的作用域的问题:比如这是一个局部变量,出了它的作用域就无法访问了.对于作用域的概念,最简单的理解就是: 在你的地盘,你还算根葱:出了你的地盘,你啥也不是 ...

  8. Jsp (Java Server Pages)相关知识九大内置对象和四大作用域

    一.初识JSP Jsp页面的组成:静态内容.指令.表达式.小脚本.声明.标准动作.注释等元素构成 Url:统一资源定位符 Url组成:协议.主机名(包括端口号).路径 1.注释的方式: 1.HTML注 ...

  9. Java Web(五) JSP详解(四大作用域九大内置对象等)

    前面讲解了Servlet,了解了Servlet的继承结构,生命周期等,并且在其中的ServletConfig和ServletContext对象有了一些比较详细的了解,但是我们会发现在Servlet中编 ...

最新文章

  1. 【面试题视频讲解】TreeSet使用示例
  2. 二分法求解一元多次方程
  3. matlab画图模糊,[转载]matlab中模糊工具箱的使用
  4. JSP 中使用Struts2的值
  5. #define const typedef
  6. python核心教程第二版答案_python核心编程第二版第4章习题答案.docx
  7. .NET版开源日志框架Log4Net详解
  8. 自己动手做聊天机器人 一-涉及知识【转】
  9. devops实践指南_DevOps:掌握这些便捷指南
  10. 从“专用”到“通用” 阿里平头哥野心何在?
  11. mysql 行转列_详解MySQL行列转换4个实现方案及反向行转列实验测试
  12. (转)OS X Mountain Lion 系统配置 Apache+Mysql+PHP 详细教程
  13. SQL-用JOIN连接多个表
  14. 每日一题[LeetCode 689]三个无重叠子数组的最大和
  15. 何万青:7月24日阿里云上海峰会超算大神
  16. lora终端连接云服务器_开源LoRa网关与服务器
  17. echarts 柱形图数据位置显示
  18. 数理统计基础 统计量
  19. Windows提权之本地提权-信息搜集
  20. [转] Android Miracast投屏入门

热门文章

  1. caTools一个奇特的工具集
  2. 2.4 知识点 pro文件常用配置
  3. 【读书摘抄】与社会学同游
  4. Maven项目的简单打包
  5. 判定分类精确度:kappa系数
  6. java jta事务_JTA -- Java分布式事务管理
  7. 零基础CSS入门教程(10)——背景图片平铺不平铺
  8. SecureCRT使用专题
  9. java iterable stream,在Java中将Iterable转换为Stream
  10. C语言实现字符串拼接