JSP中提供了四个域属性空间:page(页面作用域)、request(请求作用域)、session会话作用域、application(应用程序作用域)。

1、page域:

page域作用范围:当前页面,即只在一个jsp页面中有效。当页面跳转时,属性就失效了。

page和pageContext区别:

page:对象是当前页面转换后的Servlet类的实例,是Object对象,在JSP页面中,很少使用page对象。
pageContext:javax.servlet.jsp.PageContext的实例,该对象代表该JSP页面的上下文,可以访问该页面中的共享数据,能够调用、存取其他隐含对象。

例子:

编辑index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><%//设置page域属性pageContext.setAttribute("user", "zhangsan");%><%//获取page域属性//主要这里getAttribute()返回的是Object对象,需要强转String user = (String)pageContext.getAttribute("user");out.print("user = " + user);%>
</body>
</html>

index.jsp运行结果:

编辑index2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><%//尝试获取index.jsp中的user属性值,如果为null则无法获取String user = (String)pageContext.getAttribute("user");out.print("user = " + user);%>
</body>
</html>

2、request(请求作用域):

request:http发出请求到服务器返回响应的全过程,在这个过程中使用forward方式跳转多个jsp,在这些页面里都可以使用该域中的变量。一旦客户端刷新浏览器,重新发起请求,则之前的请求参数和属性都将失效。

例子:

编辑index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>index page<br><%//设置page域属性request.setAttribute("user", "zhangsan");request.getRequestDispatcher("index2.jsp").forward(request, response);%></body>
</html>

编辑index2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>index2 page<br><%//尝试获取index.jsp中的user属性值,如果为null则无法获取String user = (String)request.getAttribute("user");out.print("user = " + user);%>
</body>
</html>

运行结果:

当我们在服务器响应结束后,之间访问index2.jsp是结果为空

3、session(会话作用域)

session:当前会话中,即浏览器打开到浏览器关闭的整个过程(默认时间为30分钟,可以设置,也可使用invalidate()方法强制结束)。

例子

编辑index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>index page<br><%//设置page域属性session.setAttribute("user", "zhangsan");%></body>
</html>

编辑index2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>index2 page<br><%//尝试获取index.jsp中的user属性值,如果为null则无法获取String user = (String)session.getAttribute("user");out.print("user = " + user);%>
</body>
</html>

首先我们直接访问index.jsp

然后我们直接访问index2.jsp

当我们将index.jsp改为

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>index page<br><%//设置page域属性session.setAttribute("user", "zhangsan");session.invalidate();%></body>
</html>

再次访问index.jsp,之后再访问index2.jsp结果如下

4、application(应用程序作用域)

application:服务器一开始执行服务,到服务器关闭为止。它的有效范围是整个应用。 这里的整个应用是指应用启动到应用结束之间(服务器为关闭时)。当服务器关闭时,才会被清空。

例子

编写index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>index page<br><%//设置page域属性application.setAttribute("user", "zhangsan");%></body>
</html>

编写index2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>index2 page<br><%//尝试获取index.jsp中的user属性值,如果为null则无法获取String user = (String)application.getAttribute("user");out.print("user = " + user);%>
</body>
</html>

先访问index.jsp,在访问index2.jsp

重启服务器,访问index2.jsp

此时application域中user属性已被清空。

JSP四大域属性空间(page、request、session、application)详解相关推荐

  1. 观看慕课老师milanlover视频JavaBean+Jsp动作元素+page/request/session/application作用域范围+Model1

    Javabeans类写在src包里. 建一个实体类的po包,建一个用户类. 使用普通方式创建javabean实例: 新建Users.java: package com.po; /*用户类*/ publ ...

  2. JSP四大作用域属性范围

    JSP四大作用域分别为: page,request , session,application . JSP的四个作用域(从小到大) pageContext:页面作用域 request:请求作用域 Se ...

  3. JSP之四大作用域(pageContext,request,session,application)

    JSP的四大作用域的存储和获取数据的方式一样,差别在于取值的范围不同. 四大域各自作用范围为: pageContext:当前JSP页面有效 request:请求有效 session:会话有效(关闭浏览 ...

  4. 暑期项目经验(九) -- request session application

    request.session.application 一.基础知识 可以看看  浅谈:request,session,application (http://blog.csdn.net/hzc543 ...

  5. Cookie/Session机制详解

    Cookie/Session机制详解 分类: 架构师之路2011-11-09 17:55 35382人阅读 评论(20) 收藏 举报 session浏览器服务器stringjavascript加密 会 ...

  6. 2、cookie session token详解

    cookie session token详解 转自:http://www.cnblogs.com/moyand/ 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, ...

  7. session机制详解

    session机制详解 摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚 session机制的本质,以至不能正确的应用这一技术.本文将详细讨论session的 ...

  8. 【PHP基础-9】Session机制详解及Session身份认证应用案例

    目录 1 Session 机制概述 1.1 什么是Session 1.2 Session作用 1.3 session的运行机制: 2 Session应用案例 2.1 实验要求 2.2 实验环境 2.3 ...

  9. Local Storage和Session Storage详解

    Local Storage和Session Storage详解 1. 来历 在HTML5中新加了Web Storage的储存方式,主要是为了弥补Cookie储存容量的不足.Web Storage分为L ...

最新文章

  1. 【树莓派搭建个人网站】花生壳内网穿透
  2. C++ 获取当前运行程序的路径
  3. extjs6 带条件查询分页
  4. 东芝打印机共享怎么设置_东芝e-studio181打印机怎么设置网络打印机
  5. 基于JavaWeb的C2C网上购物平台系统设计
  6. 【致敬雷神】星星之火,可以燎原
  7. 天合光能为澳大利亚太阳能农场供应双玻组件
  8. Android客户端与PC服务器实现Socket通信(wifi)
  9. 常见的标识符命名风格
  10. 如何提取视频中的音频,这个方法真的很简单
  11. Agile Office 365 免积分下载
  12. selenium使用小瓜子
  13. CSS/HTML简单静态页面
  14. 想学编程要些啥基础?
  15. echarjs 折线图实现
  16. 【话题】什么是前端工程化?
  17. jq 取 scrollHeight值
  18. 如何成长为一名优秀的产品经理?
  19. 转发一份GoldenGate 配置文档
  20. aeiou(pp6.9)

热门文章

  1. Python 3.8.0百度网盘资源下载
  2. 学猫叫歌词计算机,学猫叫歌词 小峰峰(陈峰)、小潘潘(潘柚彤)_晴格歌词网
  3. z中国禽肉深加工市场盈利动态与竞争前景分析报告2022-2027年
  4. 【vijos】1006 晴天小猪历险记之Hill(dijkstra)
  5. MC 1.18.2 FORGE 开服教程及自动备份
  6. MacBook Pro 16寸 i9-9880H对比 桌面级CPU i7-8700
  7. php开发discuz插件,discuz x3插件开发傻瓜图文教程,用demo说话
  8. 【手把手】RPA机器人商城应用:工资单发送机器人
  9. DSRC通信协议标准
  10. 超级计算机预测2月有雪寒潮,寒潮连续南下,冷冬毋庸置疑?权威专家:到明年二月底最终确定...