jsp四大保存作用域
1.page :在本页面有效
pageContext.setAttribute("pageKey", "HelloPage");
- 用setAttribute方法向page里存储了一个值(HelloPage)对应的key是(pagekey)
<%=pageContext.getAttribute("pageKey")%>
- 用getAttribute方法通过key取得pageContext里的值
- page保存作用域是本页面有效的 如果跳转到了其他的页面 值就不存在了
- 当在其他的页面通过上面的方法取值 值显示出来是null
2.session:一次会话范围有效
sessionContext.setAttribute("sessionKey", "HelloSession");```
* 用**setAttribute**方法向page里存储了一个**值**(HelloSession)对应的**key**是(sessionKey)
<%=sessionContext.getAttribute("session")%>```
- 用getAttribute方法通过key取得sessionContext里的值
- page保存作用域是一次会话范围内有效的 当先存了值之后 在其他的页面通过上面的方法取值是可以取到的
- 如果浏览器关了 值就不存在了
3.application:整个应用级别有效- 跟上述方法一样 有setAttribute方法存值 有getAttribute取值
- application保存作用域是整个应用级别有效 当存值了之后 关闭浏览器或者 打开另一个浏览器都可以在其他的.jsp里取得值
- 当把Tomcat 关闭 即将程序终止 值便不存在了
4.request:一次请求响应的范围有效
- 跟上述方法一样 有setAttribute方法存值 有getAttribute取值
- request保存作用域是一次请求响应范围内有效- 当返回客户端后 客户端跳转时值就不存在了
//客户端跳转
response.sendRedirect("page3.jsp");```
2.
//服务端转发
request.getRequestDispatcher("page3.jsp").forward(request, response);```
红色的是客户端跳转 蓝色的是服务器跳转
两者区别:
- 客户端跳转其他.jsp后 request通过getAttribute方法取值为null
- 服务器跳转其他.jsp后 request通过getAttribute方法可以取到值