分别是pageContext, request, session, application四个作用域
1.
如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。
从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量。
2.
如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。
所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用 forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。
3.
如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。
所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话的所有请求里使用。
4.
如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。
整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到服务器关闭”,是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用都关闭了。
application作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。
与上述三个不同的是,application里的变量可以被所有用户共用。如果用户甲的操作修改了 application中的变量,用户乙访问时得到的是修改后的值。这在其他scope中都是不会发生的,page, request, session都是完全隔离的,无论如何修改都不会影响其他人的数据。
我们使用public Object getAttribute(String name)获得变量值,使用public void setAttribute(String name, Object value)将变量值保存到对应作用域中。举个pageContext的例子就是:
[code="java"]// page
Integer countPage = (Integer) pageContext.getAttribute("countPage");
if (countPage == null) {
pageContext.setAttribute("countPage", 1);
} else {
pageContext.setAttribute("countPage", countPage + 1);
}
<%=pageContext.getAttribute("countPage")%>的EL表达式为${countPage}
使用el有以下几个好处:
1.
代码量小,并且不需要使用尖括号。
2.
支持从pageContext, request, session, application中取值,它会自动检查四个作用域,不需要特别指定。
3.
如果变量不存在,会输出空字符串"",而不是null,省去了手工判断的工作。
分享到:
相关推荐
JSP 九个内置对象及四个作用域 JSP(Java Server Pages)是一种基于Java的服务器端脚本...JSP四个作用域包括page、request、session和application四个作用域,分别对应着页面、请求、会话和应用程序四个级别的作用域。
JSP中的四种作用域 JSP 中的四种作用域是指 page、request、session 和 application,这四种作用域都是用于存储和共享数据的,下面对每种作用域进行详细的解释: 1. Page 作用域 Page 作用域是 JSP 页面的内置...
在这个作用域内创建的对象只能被该页面访问,一旦页面处理完毕,这些对象就会被销毁。使用`pageContext.setAttribute()`方法可以在page作用域中设置属性。 2. **request**作用域:比page作用域稍大,一个请求中的...
四大作用域包括page、request、session和application四个作用域,每个作用域都有其特定的生命周期和使用场景。 page作用域是指当前页面的生命周期,以JSP页面为单位,页面销毁后页面作用域的变量将被销毁。 ...
在JSP页面中,有九大内置对象和四个作用域是非常重要的知识点,它们是JSP技术中的核心组成部分,对于开发人员来说至关重要。 首先,我们来介绍JSP的九大内置对象,它们是在JSP页面中自动可用的对象,无需进行显式的...
JavaBean四个作用域范围的详解 JavaBean是一种特殊的Java类,遵循JavaBean架构规范,具有 getter 和 setter 方法,可以在JSP页面中使用useBean标签来实例化JavaBean对象,并通过scope属性指定JavaBean的作用域范围...
JSP 中Spring Bean 的作用域详解 Bean元素有一个scope属性,用于定义Bean的作用域,该属性有如下五个值: 1>singleton: 单例模式,在整个spring IOC容器中,单例模式作用域的Bean都将只生成一个实例。一般Spring...
这个作用域仅限于当前的JSP页面,一旦页面处理完成,所有在这个作用域内设置的属性都将消失。 - `config` 对象是 `javax.servlet.ServletConfig` 类型,它提供了关于JSP页面配置的信息,如初始化参数。 2. **...
NULL 博文链接:https://1601844782.iteye.com/blog/2274248
jsp有四种属性范围: page -> 页面级别,显然只有在一个页面内可用。 request -> 请求级别 服务器跳转,一次请求之后消失。 session -> 会话级别 客户端跳转(服务器跳转),与浏览器有关,ie是在重新打开ie时才...
四个作用域分别对应不同的数据有效期和范围: - **application**作用域:在整个Web应用程序的生命周期内有效,直至服务器关闭或清空应用程序数据。 - **session**作用域:在用户会话期间有效,会话结束或调用`...
JavaBean的作用域是指它在应用程序中的可见性和生命周期,通常有四个不同的作用域:Page、Request、Session和Application。 1. **Page作用域**: Page作用域的JavaBean只在其创建的JSP页面内有效。这意味着一旦...
【JSP的九大内置对象】 ...6. **pageContext对象**:提供对当前JSP页面所有作用域的访问,以及对其他内置对象的引用,如`getAttribute()`可以获取任何作用域中的属性。 7. **page对象**:代表当前JSP页面的Java对
* 在 Servlet/JSP 中,Request 作用域是通过 HttpServletRequest 接口实现的 * Request 作用域的信息共享是通过 setAttribute 和 getAttribute 方法来实现的 * Request 作用域的信息在请求结束后无效 * 多个 Servlet...
如果在前一个作用域中找到了数据,则不再继续查找后续的作用域;反之,则继续向下搜索。 #### 五、总结 综上所述,JSP中的作用域机制是其核心功能之一,通过合理利用不同作用域的特点,可以有效地组织和管理Web...
Servlet/JSP中的Session功能是通过作用域(scope)这个概念来实现的。 作用域分为四种,分别为: page 在当前页面有效(仅用于JSP中) request 在当前请求中有效 session 在当前会话中有效 application 在所有...