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. perf + 火焰图分析程序性能
  2. 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来
  3. 在eclipse中导入工程后@Override报错
  4. 协作与大数据构建新型打假模式
  5. .c和.cpp的区别
  6. 7.3.1 阻塞IO(blocking IO)
  7. spring jdbctemplate调用存储过程,返回list对象
  8. 2018-03-28 从人机交互角度看中文编程:#39;打开微信#39;
  9. http调用如何返回回调函数_Simulink(模型amp;函数调用发生模块)+Guide自写简单系统(五)+StateflowChart回调函数 (二)...
  10. java中每个类都有子类,Java中所有的类都是从( )类或其子类派生而来的。
  11. java xmladapte_java – Jaxb:全局绑定使用XMLAdapter进行双...
  12. html京东快报,练习3:仿京东快报.html
  13. 鳗鱼刺多怎么处理图像_图像二值化处理
  14. MySQL-第四篇索引
  15. 堆密度测定的意义_什么叫真密度_真密度的测定_真密度和表观密度、堆积密度-仪器网...
  16. 推荐几个在线编程学习的网站,程序员必备
  17. 个人电子邮箱怎么注册?
  18. 李飞飞学生新作:利用场景图生成图像
  19. CSS中常用的几种选择器是哪几种呢?
  20. shell 命令下载软件 安装软件

热门文章

  1. 绘画大师、音乐达人……AI如何重新定义艺术?
  2. 简单js面向对象打飞机
  3. “菩提本无树,明镜亦非台,本来无一物,何处惹尘埃?”谁知此禅诗为何意?...
  4. 日期获取,获取今天是周几
  5. 使用mklink来节省C盘空间
  6. 【Prompt工程】爱因斯坦说:问题的表述往往比解决问题更为重要——这也许就是“提示工程”的本质……
  7. 【.Net实用方法总结】 整理并总结System.IO中StreamReader类及其方法介绍
  8. Linux学习日记之文件权限
  9. 猜字游戏2,使用JSP+Servlet的形式编写程序,用户输入5个整数,逗号隔升,和预测值进行比较,如果5个随时数中包含预测值,则显示“恭喜你猜对了,预测值是*”
  10. OpenSSL的安装与使用