1、分类

对于jsp:useBean创建的对象,由jsp:useBean的可选属性scope指定,可以存储于4个不同的位置:

  • page(默认)
  • request
  • session
  • application

使用scope时,系统首先检查指定的位置是否存在指定名称的 bean。当系统找不到现有的 bean 时,才会创建新的 bean 。

2、page

<jsp:useBean scope="page"/>
  • pagescope默认取值,即省略scope属性时对应的范围。在处理当前请求期间,除了要将 bean 对象绑定到局部变量外,还将它放在pageContext对象中。servlet 可以通过调用预定义变量pageContextgetAttribute方法访问它。

  • 由于每个页面和每个请求都有不同的pageContext对象,所以scope="page" (或省略scope)表示不共享 bean,也就是针对每个请求都创建新的 bean。

3、request

<jsp:useBean scope="request"/>
  • 在处理当前请求期间,除了要将bean对象绑定到局部变量外,还将它放在HttpServletRequest对象中,从而可以通过getAttribute方法访问它。
  • 在使用jsp:includejsp:forward或者RequestDispatcherincludeforward方法时,两个JSP页面,或JSP页面和 servlet 将会共享request对象。属于requestScope的JavaBean对象也将伴随着request对象送出,被第二个JSP页面接收。因此,所有通过这两个操作指令连接在一起的JSP页面都可以共享一个request对象,共享这种类型的JavaBean对象。

4、session

<jsp:useBean scope="session"/>
  • bean存储到与当前请求关联的HttpSession对象中,可以使用getAttribute获取存储在HttpSession中的对象。
  • 使用session作用域,在第一个JSP页面中创建的JavaBean对象在这个用户访问的同一网站的所有的JSP页面中都是可用的,而且这个JavaBean对象的状态保持唯一性。如果用户B与用户A访问同一个页面,JSP容器同样会为用户B创建属于用户B的JavaBean对象,这些对象互不干涉。

5、application

<jsp:useBean scope="application"/>
  • bean存储在ServletContext中(通过预定义application变量或通过调用getServletContext获得)。
  • ServletContext由Web应用中多个servlet和JSP页面所共享。ServletContext中的值可以用getAttribute方法获取。

jsp:useBean的scope属性的更多相关文章

  1. jsp:useBean标准动作

    1.bean法则 JavaBean和企业JavaBean是完全不相干的两个东西.普通的非企业JavaBean需要满足一定的规范才能被JSP和servlet使用: 1)必须有一个无参数的公共构造函数: ...

  2. JSP中scope属性 scope属性决定了JavaBean对象存在的范围

    scope属性决定了JavaBean对象存在的范围. scope的可选值包括: ---page(默认值) ---request ---session ---application   1.page范围 ...

  3. Jsp:useBean标签的使用

    1.<jsp:useBean id="为Bean起的别名(随意起)" class="Bean的目录,从包名开始写" scope="page | ...

  4. JSP---JavaBean的使用-jsp:useBean标签相关

    JavaBean介绍: JavaBean其实就是一个遵循特定写法的java类,但是必须具有如下特点: 1.这个java类必须具有一个公开的无参构造函数 2.属性必须私有化,类必须公开 3.私有化的属性 ...

  5. <jsp:useBean>、<jsp:setProperty>与<jsp:getProperty>

    <jsp:useBean>标签 会调用java对象的无参构造方法,来创建实例. <jsp:useBean>标签是用来搭配JavaBean元件的标准标签,这里指的JavaBean ...

  6. Jsp:useBean使用详解

    <jsp:useBean>标签用来在jsp页面中创建一个Bean实例,定义语法如下: 一.<jsp:useBean>语法 <jsp:useBean id="id ...

  7. <jsp:useBean>动作的使用

    jsp:useBean动作的使用 jsp:useBean动作用于在指定的范围内寻找指定名称的JavaBean对象,如果找到,则返回该对象的引用可以操作里边的属性.如果没有找到则重新实例化一个对象.并且 ...

  8. JSTL中的scope属性

    前两天接到老大一个任务:要验证一下<c:import>能否动态地引入不同的文件.当时很兴奋,要知道在对日外包里面,这个也得算技术活了.呵呵! 说干就干,写了两个jsp文件:m.jsp  t ...

  9. 菜鸟学习Struts——Scope属性

    一.概念. 在Action映射配置中,Scope属性可以取值为:request或session.Scope属性表示:Struts框架在将     ActionForm对象(与目标Action匹配的Ac ...

随机推荐

  1. Java SSLSocket

    Java SSLSocket JSSE(Java Security Socket Extension)是Sun公司为了解决互联网信息安全传输提出的一个解决方案,它实现了SSL和TSL协议,包含了数据加 ...

  2. mybatis处理集合、数组参数使用in查询等语句的两种方法

    对于mybatis的参数类型是集合数组的时候进行查询. 第一种:参数list使用mybatis的标签 SELECT * FROM TABLE_NAME AS a <where> <i ...

  3. Springboot集成SpringSecurity

    一.Spring security 是什么? Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架. 它提供了一组可以在Spring应用上 ...

  4. 【科研工具】CAJViewer的一些操作

    逐渐发现CAJViewer没有想象中的难用. 添加书签:Ctrl+M 使用按类分类,可以筛选出书签位置,和注释区分. 搜索:Ctrl+F 可以定义多种搜索.

  5. IIS 发布 WebService 连接DB2数据库报错如下图

    环境描述: 系统环境: Windows Server 2012 R2      IIS版本:IIS 6.2      C#环境:.NET Framework 4  DB2版本:9.7.500.702 ...

  6. 聊聊 SpringBoot 中的两种占位符:@*@ 和 ${*}

    前言 在 SpringBoot 项目中,我们经常会使用两种占位符(有时候还会混用),它们分别是: @*@ ${*} 如果我们上网搜索「SpringBoot 的占位符 @」,大部分答案会告诉你,Spri ...

  7. 关于Too many levels of symbolic links和 /usr/bin/env: node: 没有那个文件或目录

    由于node装了两遍在运行bower install的时候就会报错Too many levels of symbolic links要卸载其中一个nodejs,卸载的方法: 1. 卸载node npm ...

  8. 字符串函数(Excel函数集团)

    此处文章均为本妖原创,供下载.学习.探讨! 文章下载源是Office365国内版1Driver,如有链接问题请联系我. 请勿用于商业!谢谢 下载地址:https://officecommunity-m ...

  9. CF1110A Parity 题解

    Content 求下面式子的奇偶性,其中 \(a_i,k,b\) 会在输入中给定. \[\sum\limits_{i=1}^k a_i\cdot b^{k-i} \] 数据范围:\(2\leqslan ...

  10. mongodb 连接方式之mongo-shell

    单机连接:mongo 120.131.0.64:27017 -u root -p KingSoft@1314 --authenticationDatabase admin 字符串连接 python i ...