jsp提供了4个属性保存范围,这四种范围作用域由大到小分别page>request>session>application
可利用这四个对象传值,在一处设置值,在另一处获取值。
除了page用pageContext来设置和获取,其他都可以用本对象名来设置和获取
page:pageContext.setAttribute("key","value")设置变量,pageContext.getAttribute("key","value")获取变量
request:request.setAttribute("key","value")设置变量,request.getAttribute("key","value")获取变量
session:session.setAttribute("key","value")设置变量,session.getAttribute("key","value")获取变量
application:application.setAttribute("key","value")设置变量,application.getAttribute("key","value")获取变量
page:
page代表的是当前页面,一个jsp中有一个page,所以不能通过page在不同页面中传值。
request:
request的范围是一次请求,在不同的页面之间可以用request来传值
服务器跳转(用户的浏览器上的网址不发生改变)有效,
<jsp:forward page=" "> 请求转发
客户端跳转(用户的浏览器上的网址发生改变)无效,
<a href=" "> 重定向
session:
session 代表的范围是一次会话,用户初次访问的时候,产生一次会话,当时间超时或者关闭当前会话的时候(关闭当前浏览器,再打开一个浏览器),session失
效,在当前会话期间,所有的页面之间是共享的。
application:
application创建之后,只要服务器开启就一直有效,直到服务器关闭。在所有的页面之间共享,即使是再次打开浏览器。在程序中不宜创建过多的application,会带来资源上的消耗。