内置对象的作用范围是指每个内置对象的某个实例在多长时间和多大的范围中有效,即在什么样的范围内可以有效地访问同一个对象实例。
在javax.servlet.jsp.PageContext的类中定义了4个常量来指定内置对象的作用范围:APPLICATION_SCOPE、SESSION_SCOPE、PAGE_SCOPE、REQUEST_SCOPE,它们分别代表了对象的“生命周期”。
1、Application的作用范围
该范围是从服务器开始运行到服务器关闭。
所有jsp内置对象中,application对象停留的时间最长。一旦application对象的数量过大,服务器运行效率会大大降低。
2、Session的作用范围
该范围是从客户端与服务器连接开始,到连接中断为止。
指定的session对象作用范围根据访问用户的数量和时间而定。与application对象不同,服务器中可能存在多个session对象,但每个session对象实例的作用范围会相差很大。此外,有些服务器对session对象有默认的时间限制,若超出该时间限制,session会自动消失,自动断开连接。
3、Request的作用范围
该范围是从一个jsp页面向另一个jsp页面提出请求到请求完成之间,到完成请求后结束。
项目ch04案例:
step1:创建request.jsp页面
step2:创建reques1.jsp页面
step3:创建request2.jsp页面
结果:http://localhost:8080/ch04/request.jsp
点击链接后:
点击链接后,request对象的作用范围消失,所以获取不到值。
4、Page的作用范围
该范围是当前页面。
上述表中,除了pageContext对象中没有getAttributeNames()方法外,其余方法在pageContext、request、session和application对象中均可使用。