首先,你需要知道client跳跃和server差别:
client跳转: response.sendRedict(String path),地址栏发生改变。
不能传递request属性。
server端跳转:<jsp:forward> 地址栏不发生改变。能传递request属性。
request属性范围: 仅仅有在server端跳转以后,全部设置的内容才会停留下来。
session属性范围: 无论是client跳转还是server端跳转,仅仅要是是属性设置了都能够取得。
1:page:(pageContext)
仅仅在一个页面中保存属性。跳转之后无效。
表示将一个属性设置在本页面上,跳转之后无效。
当通过<jsp:forward>server跳转(地址栏不发生改变)之后。属性无法取得!
2:request:
server跳转(<jsp:forward>)之后有效;
通过超链接(<a href=""></a>)request设置的属性是无法取得的;
request属性在MVC设计模式中使用比較多。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hpeWVxaWFuZ2xkaA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
3:session:
再一次会话范围中,不管何种跳转都能够使用,可是新开的浏览器无法使用;
能够再不论什么一个与设置页面相关的页面中取得;
在超链接中属性也能够取得(超连接地址栏改变,属于client跳转)。
每个新的浏览器连接上server后就是一个新的session。所以新开的浏览器中是无法取得session属性的。
4:application:
在整个server上保存,全部用户都能够使用;
无论新开多少浏览器application属性均可取得,可是一旦server又一次启动,则之前设置的属性将所有消失。
版权声明:本文博客原创文章,博客,未经同意,不得转载。