JSP内置对象的作用域

  在我们我学习JSP时,会常常用到JSP的内置对象(page,pagecontext,request,response,session,application,out ,exception,config)。其中(pageContext,request,session,application)这四个内置对象存在自己的有效范围。下面我们就简单演示一下。

(pageContext,request,session,application),这四个内置对象,只要能够获取到,就代表在其作用域中

 

1、在当前界面,

主要代码:
1
<h6>获取到的对象有:</h6> 2 <% pageContext.setAttribute("pageContext","pageContext对象");%> 3 <%= pageContext.getAttribute("pageContext")%><br> 4 5 <% request.setAttribute("request","request对象");%> 6 <%= request.getAttribute("request")%><br> 7 8 <% session.setAttribute("session","session对象");%> 9 <%= session.getAttribute("session")%><br> 10 11 <% application.setAttribute("application","application对象");%> 12 <%= application.getAttribute("application")%><br> 13 <a href="test2.jsp">test.jsp</a>

运行结果:

(说明这四个对象在当前界面都是有效的)

 

2、下面我们点击test.jsp链接,跳转界面(test.jsp界面代码如下↓)

1 <h6>获取到的对象有:</h6>
2 <%= pageContext.getAttribute("pageContext")%><br>
3 <%= request.getAttribute("request")%><br>
4 <%= session.getAttribute("session")%><br>
5 <%= application.getAttribute("application")%><br>

查看运行结果:

 

 

 通过结果发现,pagecontext,request对象无法获取到了,原因就是因为:pagecontext存储的值,只是针对当前界面,当界面跳转之后,存储的值就无法获取到,request获取不到的原因是:request是单次请求当我们点击跳转时,相当于再次发送了一次请求,所以request就不能再次获取到了。

 

3、下面我们打开另外一个浏览器比如火狐:

 

 

 结果,就只获取到了application对象,session对象获取不到的原因是:我们打开火狐浏览器,就意味着该客户端(就是之前的谷歌浏览器)已经与服务器断开了连接,结束了会话,所以之前存储的值就获取不到了,那么我们的application内置对象的作用域是什么呢?其实application有点类似于java的全局变量,只要我们的服务器不关闭,他就一直存在。

 

 

application小结一下:

pagecontext:只在当前界面有效

request:只作用于单次请求

session:作用于与服务器的会话,不关闭与副武器的会话,就会一直生效

application:只要服务器不关闭,就一直生效。

 

posted @ 2021-04-01 17:24  kunmin  阅读(120)  评论(0编辑  收藏  举报