page
- page指当前页面。只在一个jsp页面里有效 。
- page里的变量没法从index.jsp传递到test.jsp,只要页面跳转了,它们就不见了。
pageContext
- 如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。
- 从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量。
- pageContext对象的范围只适用于当前页面范围,即超过这个页面就不能够使用了。所以使用pageContext对象向其它页面传递参数是不可能的。
- pageContext类,有方法getRequest() getSession() 等方法。
request
- request 指从http请求到服务器处理结束,返回响应的整个过程。在这个过程中使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。
session
- session 有效范围当前会话,从浏览器打开到浏览器关闭这个过程。
- session和application里的变量一直在累加,开始还看不出区别,只要关闭浏览器,再次重启浏览器访问这页,session里的变量就重新计算了。
application
- application的范围在服务器一开始执行服务,到服务器关闭为止。它的范围最大,生存周期最长。
- 如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。 整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到服务器关闭”,是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用都关闭了。
- application作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。