测试JSP四大域对象作用范围

本文通过实例展示了JSP的pageContext、request、session、application四大域对象的作用范围。在当前页面,四个域对象都能存储数据,但在请求转发和重定向过程中,pageContext域对象只在本页面有效,request域对象在一次请求内有效,session域对象在一次会话内有效,而application域对象在整个应用生命周期内有效。实验结果清晰地揭示了它们的作用范围差异。

JSP四大域对象

pageContext、request、session、application
以上书写的顺序,是按照域对象作用范围从小到大书写的!

这里服务器是用的Tomcat(免费开源都爱用0.0)

在当前页面获取域对象的值

areaObject.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>
	<% 
	/* 数据准备 */
	pageContext.setAttribute("d1", "pageContext域对象");
	request.setAttribute("d2", "request域对象");
	session.setAttribute("d3", "session域对象");
	application.setAttribute("d4", "application域对象");
	%>
	<!-- 在当前页面获取域对象的值 -->
	${d1 }<br>
	${d2 }<br>
	${d3 }<br>
	${d4 }<br>
</body>
</html>

显示结果:
pageContext域对象
request域对象
session域对象
application域对象

在请求转发页面显示

原页面body标签里面,最后加上

	<%
		request.getRequestDispatcher("areaObject1.jsp").forward(request, response);
	%>

areaObject1.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>
	${d1 }<br>
	${d2 }<br>
	${d3 }<br>
	${d4 }<br>
</body>
</html>

显示结果;
(空)
request域对象
session域对象
application域对象
得出pageContext域对象作用范围最小,是本个页面。请求转发页面不显示

重定向页面显示

同样的位置,在areaObject1.jsp中加入

<% response.sendRedirect("areaObject2.jsp"); %>

areaObject2.jsp页面和1是一样的,这里也贴一下吧

<%@ 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>
	${d1 }<br>
	${d2 }<br>
	${d3 }<br>
	${d4 }<br>
</body>
</html>

运行结果:
(空)
(空)
session域对象
application域对象
得出request域对象作用范围其次,是一次请求。

session域对象

接下来将地址栏路径复制,浏览器关闭,注意是关浏览器,关标签页不行,然后路径粘贴直接访问。
显示结果:
(空)
(空)
(空)
application域对象
得出request域对象作用范围再其次,是一次会话。

application域对象

接下来将tomcat重启,地址栏重新访问。
显示结果:
(空)
(空)
(空)
(空)
得出request域对象作用范围最大,其信息存储在服务器中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静安书以沫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值