jsp四大保存作用域
1.page :在本頁面有效
pageContext.setAttribute("pageKey", "HelloPage");
- 用setAttribute方法向page里存儲了一個值(HelloPage)對應(yīng)的key是(pagekey)
<%=pageContext.getAttribute("pageKey")%>
- 用getAttribute方法通過key取得pageContext里的值
- page保存作用域是本頁面有效的 如果跳轉(zhuǎn)到了其他的頁面 值就不存在了
- 當(dāng)在其他的頁面通過上面的方法取值 值顯示出來是null
2.session:一次會話范圍有效
sessionContext.setAttribute("sessionKey", "HelloSession");```
* 用**setAttribute**方法向page里存儲了一個**值**(HelloSession)對應(yīng)的**key**是(sessionKey)
<%=sessionContext.getAttribute("session")%>```
- 用getAttribute方法通過key取得sessionContext里的值
- page保存作用域是一次會話范圍內(nèi)有效的 當(dāng)先存了值之后 在其他的頁面通過上面的方法取值是可以取到的
- 如果瀏覽器關(guān)了 值就不存在了
3.application:整個應(yīng)用級別有效- 跟上述方法一樣 有setAttribute方法存值 有getAttribute取值
- application保存作用域是整個應(yīng)用級別有效 當(dāng)存值了之后 關(guān)閉瀏覽器或者 打開另一個瀏覽器都可以在其他的.jsp里取得值
- 當(dāng)把Tomcat 關(guān)閉 即將程序終止 值便不存在了
4.request:一次請求響應(yīng)的范圍有效
- 跟上述方法一樣 有setAttribute方法存值 有getAttribute取值
- request保存作用域是一次請求響應(yīng)范圍內(nèi)有效- 當(dāng)返回客戶端后 客戶端跳轉(zhuǎn)時值就不存在了
//客戶端跳轉(zhuǎn)
response.sendRedirect("page3.jsp");```
2.
//服務(wù)端轉(zhuǎn)發(fā)
request.getRequestDispatcher("page3.jsp").forward(request, response);```
客戶端跳轉(zhuǎn)和服務(wù)器轉(zhuǎn)發(fā).png
紅色的是客戶端跳轉(zhuǎn) 藍(lán)色的是服務(wù)器跳轉(zhuǎn)
兩者區(qū)別:
- 客戶端跳轉(zhuǎn)其他.jsp后 request通過getAttribute方法取值為null
- 服務(wù)器跳轉(zhuǎn)其他.jsp后 request通過getAttribute方法可以取到值