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

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域对象作用范围最大,其信息存储在服务器中。

你可能感兴趣的:(java学习)