`
we1818
  • 浏览: 61851 次
  • 性别: Icon_minigender_1
  • 来自: 湖州
社区版块
存档分类
最新评论

jsp的四个作用域

阅读更多
分别是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 九个内置对象及四个作用域 JSP(Java Server Pages)是一种基于Java的服务器端脚本...JSP四个作用域包括page、request、session和application四个作用域,分别对应着页面、请求、会话和应用程序四个级别的作用域。

    JSP中的常见的四种作用域

    JSP中的四种作用域 JSP 中的四种作用域是指 page、request、session 和 application,这四种作用域都是用于存储和共享数据的,下面对每种作用域进行详细的解释: 1. Page 作用域 Page 作用域是 JSP 页面的内置...

    JSP内置对象及四种作用域

    在这个作用域内创建的对象只能被该页面访问,一旦页面处理完毕,这些对象就会被销毁。使用`pageContext.setAttribute()`方法可以在page作用域中设置属性。 2. **request**作用域:比page作用域稍大,一个请求中的...

    jsp九大内置对象和四大作用域详解.docx

    四大作用域包括page、request、session和application四个作用域,每个作用域都有其特定的生命周期和使用场景。 page作用域是指当前页面的生命周期,以JSP页面为单位,页面销毁后页面作用域的变量将被销毁。 ...

    浅谈jsp九大内置对象及四个作用域

    在JSP页面中,有九大内置对象和四个作用域是非常重要的知识点,它们是JSP技术中的核心组成部分,对于开发人员来说至关重要。 首先,我们来介绍JSP的九大内置对象,它们是在JSP页面中自动可用的对象,无需进行显式的...

    JavaBean四个作用域范围的详解

    JavaBean四个作用域范围的详解 JavaBean是一种特殊的Java类,遵循JavaBean架构规范,具有 getter 和 setter 方法,可以在JSP页面中使用useBean标签来实例化JavaBean对象,并通过scope属性指定JavaBean的作用域范围...

    JSP 中Spring Bean 的作用域详解

    JSP 中Spring Bean 的作用域详解 Bean元素有一个scope属性,用于定义Bean的作用域,该属性有如下五个值: 1&gt;singleton: 单例模式,在整个spring IOC容器中,单例模式作用域的Bean都将只生成一个实例。一般Spring...

    JSP的四种作用范围总结

    这个作用域仅限于当前的JSP页面,一旦页面处理完成,所有在这个作用域内设置的属性都将消失。 - `config` 对象是 `javax.servlet.ServletConfig` 类型,它提供了关于JSP页面配置的信息,如初始化参数。 2. **...

    jsp主要九大内置对象、四大web域、两种包含、两种注释、几个jsp标准动作

    NULL 博文链接:https://1601844782.iteye.com/blog/2274248

    jsp九大内置对象、四种作用域、跳转方式

    jsp有四种属性范围: page -&gt; 页面级别,显然只有在一个页面内可用。 request -&gt; 请求级别 服务器跳转,一次请求之后消失。 session -&gt; 会话级别 客户端跳转(服务器跳转),与浏览器有关,ie是在重新打开ie时才...

    JSP内置对象和作用域[收集].pdf

    四个作用域分别对应不同的数据有效期和范围: - **application**作用域:在整个Web应用程序的生命周期内有效,直至服务器关闭或清空应用程序数据。 - **session**作用域:在用户会话期间有效,会话结束或调用`...

    JavaBean的作用域.doc

    JavaBean的作用域是指它在应用程序中的可见性和生命周期,通常有四个不同的作用域:Page、Request、Session和Application。 1. **Page作用域**: Page作用域的JavaBean只在其创建的JSP页面内有效。这意味着一旦...

    jsp的九大内置对象和四大作用域

    【JSP的九大内置对象】 ...6. **pageContext对象**:提供对当前JSP页面所有作用域的访问,以及对其他内置对象的引用,如`getAttribute()`可以获取任何作用域中的属性。 7. **page对象**:代表当前JSP页面的Java对

    request、session作用域的理解

    * 在 Servlet/JSP 中,Request 作用域是通过 HttpServletRequest 接口实现的 * Request 作用域的信息共享是通过 setAttribute 和 getAttribute 方法来实现的 * Request 作用域的信息在请求结束后无效 * 多个 Servlet...

    JSP 内置对象作⽤域.md

    如果在前一个作用域中找到了数据,则不再继续查找后续的作用域;反之,则继续向下搜索。 #### 五、总结 综上所述,JSP中的作用域机制是其核心功能之一,通过合理利用不同作用域的特点,可以有效地组织和管理Web...

    JSP中 Session和作用域的使用

    Servlet/JSP中的Session功能是通过作用域(scope)这个概念来实现的。 作用域分为四种,分别为: page 在当前页面有效(仅用于JSP中) request 在当前请求中有效 session 在当前会话中有效 application 在所有...

Global site tag (gtag.js) - Google Analytics