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方法获取。

最新文章

  1. mongodb3.x版本用户管理方法
  2. JQuery小结
  3. 泛函编程(24)-泛函数据类型-Monad, monadic programming
  4. android button 函数调用栈
  5. 基于Emgu cv的图像拼接(转)
  6. mybatis--MapperScannerConfigurer
  7. Oracle超出最大连接数问题及解决
  8. Servlet入门案例
  9. (转)Cookies使用
  10. JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine
  11. Recording and playing back data
  12. Python Face Detect Offline
  13. 微信小程序——地图
  14. 三十一、Linux 进程与信号——SIGCHLD 信号、kill和raise函数以及alarm函数
  15. ASP.NET WebApi服务接口如何防止重复请求实现HTTP幂等性
  16. Linq To SQL LEFT OUTER JOIN (Left Join)
  17. 乘积最大|2018年蓝桥杯B组题解析第十题-fishers
  18. 关于注解Annotation第一篇
  19. 用localStorage来存储数据的一些经验
  20. Windows上使用“LogView”打开大文件

热门文章

  1. 100个Shell脚本——【脚本4】自定义rm命令
  2. Output of C++ Program | Set 10
  3. java列表组件鼠标双击事件的实现
  4. 常用windows命令和Dos命令
  5. python基础 (三)
  6. Sentry 开发者贡献指南 - 后端服务(Python/Go/Rust/NodeJS)
  7. Python基础入门(7)- Python异常处理机制
  8. Android4.4开机动画播放视频
  9. 10-2 bonding
  10. Miniconda入门教程