jsp的4种作用域(会话跟踪技术)?

什么是会话?会话就是从客户端打开与服务器的连接并发出请求,到服务器响应客户请求的全过程。

开发Web应用时,经常需要做到数据共享或者说是在不同页面之间可以传递参数,而且一个会话的数据可能会在不同的地方使用,因此需要专门的机制来传递和保存这些数据。

会话跟踪就是对一个用户对服务器的连续请求和接受响应的监视。由于客户和服务器是基于HTTP协议进行通信的,不能保存客户的信息,也就是说一次响应结束之后连接就断开了,下一次请求时,需要重新建立连接,建立连接后还需要判断是否是同一个客户。因此,我们可以通过会话跟踪技术来对会话过程进行监控。

1、会话跟踪技术4种

page、request、Session、application。

(1)page
代表与一个页面相关的对象和属性。
一个页面由一个编译好的Servlet类表示。这既包括Servlet有包括被编译成Servlet的JSP页面。

(2)request
代表与Web客户端发送的一个请求相关的对象和属性。
一个请求可能跨越多个页面,涉及多个Web组件。

(3)session
代表与用于某个Web客户端的一个用户体验相关的对象和属性。
一个Web会话也可能跨越多个客户端请求。

(4)application
代表与整个Web应用程序相关的对象和属性,实质上是跨越多个Web应用程序,包括多个页面、请求和会话的一个全局作用域。

2、JSP的4种作用域

作用域: 指的是“信息共享的范围”。

jsp的4种作用域: page、request、Session、application。

(1)page
指当前页面有效,页面发生跳转就立即失效。

(2)request
指在一次请求的全过程中有效,即从http请求到服务器处理结束,返回响应的整个过程,存放在HttpServletRequest对象中。在这个过程中可以使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。

(3)Session
是用户全局变量,在整个会话期间都有效。只要页面不关闭就一直有效(或者直到用户一直未活动导致会话过期,默认session过期时间为30分钟,或调用HttpSession的invalidate()方法)。存放在HttpSession对象中。

(4)application是程序全局变量,对每个用户每个页面都有效。存放在ServletContext对象中。它的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。