文章摘要:jsp的四大作用域是什么 jsp中的四大作用域
jsp的四大作用域是:1、application 作用域。2、session作用域。3、request作用域。 […]
jsp的四大作用域是:1、application 作用域。2、session作用域。3、request作用域。4、page作用域。
1、application 作用域
假如将变量放在application中,则说明它的作用域是application,整个应用都是它的有效范围。 整个应用意味从应用启动到应用结束。 application作用域里的变量存活时间是最长的,如不手动删除,就可以一直使用。
application作用域上通过ServletContext实现信息传递,方法如下所示:
Object getAttribute(String name) //从application中获取信息;
void setAttribute(String name, Object value) //向application作用域中设置信息。
2、session作用域
session作用域是同一浏览器多次访问服务器,在多次访问中传递信息,就是session作用域的体现。假如将变量放到session中,则说明它的作用域是session,它的有效范围是当前会话。当前会话:从用户打开浏览器直到用户关闭浏览器的过程。该过程可能包含多个请求响应。只要用户不关闭浏览器,服务器就会知道这些请求是一个人发起的,将整个过程称为一个会话(session),那么放到会话中的变量,就可以在当前会话的所有请求里使用。
session是通过HttpSession接口实现的,方法如下所示:
Object HttpSession.getAttribute(String name) //从session中获取信息。
void HttpSession.setAttribute(String name, Object value)//向session中保存信息。
HttpSession HttpServletRequest.getSessio() //获取当前请求所在的session的对象。
3、request作用域
在一个HTTP请求的处理中可能需要多个Servlet合作,这几个Servlet之间可以通过某种方式传递信息,这个信息在请求结束后就失效了。request中的变量可以跨越forward前后两页。但只要刷新页面,它们就重新计算了。假如将变量放到request中,则说明它的作用域是request,它的有效范围是当前请求周期。 请求周期就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。
Servlet之间的信息共享是通过HttpServletRequest接口的两个方法来实现的,方法如下所示:
void setAttribute(String name, Object value) //将对象value以name为名称保存到request作用域中。
Object getAttribute(String name) //从request作用域中取得指定名字的信息。
4、page作用域
仅限于当前页面的用户请求是page对象的作用范围,对page对象的引用将在响应返回给客户端之后被释放或在请求被转发到其他地方后被释放。page里的变量只要页面跳转了,它们就消失了。假如将变量放到pageContext中,则说明它的作用域是page,它的有效范围只在当前jsp页面里。从把变量放到pageContext开始,到jsp页面结束,都可以使用这个变量。