客户端响应和服务器转发

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);“`

《客户端响应和服务器转发》 客户端跳转和服务器转发.png

红色的是客户端跳转 蓝色的是服务器跳转

两者
区别

  • 客户端跳转其他.jsp后 request通过getAttribute方法取值为null
  • 服务器跳转其他.jsp后 request通过getAttribute方法可以取到值
    原文作者:小夫特
    原文地址: https://www.jianshu.com/p/f0c96ed27d86
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞