欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JSP四大域的作用范围

程序员文章站 2022-06-24 12:19:30
JSP四大域对象pageContext当前jsp页面范围内有效request一次请求内有效session一次会话范围内有效,也就是打开浏览器访问服务器到关闭浏览器application整个Web工程内有效作用范围创建一个four.jsp工程<%pageContext.setAttribute("key", "pageContext");request.setAttribute("key", "request");...

JSP四大域对象

  1. pageContext
    当前jsp页面范围内有效
  2. request
    一次请求内有效
  3. session
    一次会话范围内有效,也就是打开浏览器访问服务器到关闭浏览器
  4. application
    整个Web工程内有效

作用范围

创建一个four.jsp工程

<!-- 四大域的作用范围 -->
	<%
		pageContext.setAttribute("key", "pageContext");
		request.setAttribute("key", "request");
		session.setAttribute("key", "session");
		application.setAttribute("key", "application");
	%>
	// 1. pageContext 当前jsp页面范围内有效
	pageContext -> <%=pageContext.getAttribute("key") %><br/>
	// 2. request	一次请求内有效
	request -> <%=request.getAttribute("key") %><br/>
	// 3. session 一次会话范围内有效(打开浏览器访问服务器,直到浏览器关闭) 
	session -> <%=session.getAttribute("key") %><br/>
	// 4. application 整个web工程内有效 -->
	application -> <%=application.getAttribute("key") %>

当前JSP启动之后
JSP四大域的作用范围
让pageContext失效,也就是离开当前页面,那我们只需要把这次请求转发到另外一个页面。

	// 转发请求 
	<% request.getRequestDispatcher("/jspinit/fourDemo.jsp").forward(request, response); %>

然后再创建一个fourDemo.jsp工程

	//1. pageContext 当前jsp页面范围内有效
	pageContext -> <%=pageContext.getAttribute("key") %><br/>
	//2. request	一次请求内有效
	request -> <%=request.getAttribute("key") %><br/>
	//3.session 一次会话范围内有效
	session -> <%=session.getAttribute("key") %><br/>
	//4. application 整个web工程内有效
	application -> <%=application.getAttribute("key") %>

请求转发之后,已经转向了另外一个页面,也就代表着pageContext的值已经失效,结果为null;(因为由four.jsp转发至fourDemo.jsp属于一次请求,所以request的值还有效)
JSP四大域的作用范围
request的作用范围是一次请求有效,我们直接访问fourDemo.jsp时,已经不属于一次请求,测试发现,request对应的key值已经为null。
JSP四大域的作用范围
session的作用范围是一次会话范围内有效,而我们只需要关闭浏览器,再启动就能得到结果
JSP四大域的作用范围application的作用范围是整个web工程,所以想让applicable失效,我们需要重启服务器,再直接访问fourDemo.jsp,就能发现
JSP四大域的作用范围
所以它们的作用范围关系
pageContext < requset < session < application

本文地址:https://blog.csdn.net/m0_51238675/article/details/110914996

相关标签: jsp web servlet