EL表達式是jsp用來取值的,但是如果其他域中也存儲了相同的數據,那么用EL表達式取出相同的名稱會怎樣?
通過Servlet在request和session中設置名為username的屬性,但是值不一樣,最后轉發到show.jsp頁
然后在show.jsp頁面
運行結果:
從這里可以看出在request和session作用域中設置了username屬性,使用EL語句調用,最終輸出的是request域中的屬性。
這是因為:EL表達式中{}中只有屬性名時,會依次去四個作用域page,request,session,application中進行查找,查看是否有屬性名為username的屬性
如果page沒找到,就依次向下找。但是,如果找到了,就不會再繼續向下找了。
所以,我們需要指定作用域。每個作用域都可以對應一個EL中的名稱:
作用域 | EL中的表示 |
page | pageScore |
request | requestScore |
session | sessionScort |
application | applicationScore |
運行截圖: