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四大域对象
- pageContext
当前jsp页面范围内有效 - request
一次请求内有效 - session
一次会话范围内有效,也就是打开浏览器访问服务器到关闭浏览器 - 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启动之后
让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的值还有效)
request的作用范围是一次请求有效,我们直接访问fourDemo.jsp时,已经不属于一次请求,测试发现,request对应的key值已经为null。
session的作用范围是一次会话范围内有效,而我们只需要关闭浏览器,再启动就能得到结果
application的作用范围是整个web工程,所以想让applicable失效,我们需要重启服务器,再直接访问fourDemo.jsp,就能发现
所以它们的作用范围关系
pageContext < requset < session < application
本文地址:https://blog.csdn.net/m0_51238675/article/details/110914996