pageContext,request,session,application四大作用域的区别
一、 生命周期:
- page:存在page中的变量,只作用于当前的jsp页面,当发生跳转、重定向、定时刷新时,将随之销毁;
- request:存在request中的变量,作用于一次HTTP请求到服务器处理结束,返回响应的整个过程,该变量可以随着forward的方式跳转到多个jsp中,一但刷新页面,它们将重新计算;
- session:存在Session中的变量,作用于一次会话中,从打开浏览器到关闭浏览器过程中,将一直累加;(若想在再次打开浏览器时,变量仍然存在,则可以将session的JSESSIONID存到Cookie中,在给cookie一个存活时间)
- application:存在application中的变量,作用于整个应用中,即从应用启动到应用结束,如果不进行手工删除,它们将一直可以使用,而且这些变量所有用户均可使用。
二、 作用范围:
- page:用户请求的当前页面;
- request:用户请求访问的当前组件,以及和当前web组件共享同一用户请求的web组件;
- session:同一个Http会话中的web组件共享;
- application:整个web应用的所有web组件共享,即只要是同一个服务器下的均可使用。