简介


JavaBean是一种可重复使用、跨平台的软件组件,在JSP中通过特定的JSP标签可以访问JavaBean。本文总结JavaBean的4种存放范围的特性。


JavaBean在Web中的访问范围


JavaBean可用来作为Web应用中的多个组件共享数据。在Web应用中,如果某种数据需要被用来被多个Web组件共享,可以把这些共享组件放在特定范围内。


Servlet归法规定了4种范围,分别如下:


页面(page)范围


共享数据的有效范围是用户请求访问的当前JSP页面。JavaBean对象在以下两种情况下结束生命周期:


  • 客户请求访问当前的JSP页面执行完毕并向客户端发回响应
  • 客户请求访问当前的JSP页面执行完毕,接着通过<jsp:forward>标记将请求转发到另一个Web组件

页面范围内的共享数据实际上存放在PageContext对象中。


请求(request)范围


共享数据的有效范围为用户请求访问的当前组件,以及和当前Web组件共享同一用户请求的其它Web组件。


如果用户请求访问的是JSP网页,那么该JSP网页的<%@ include>指令、<jsp:include>标签及<jsp:forward>标签指向其它的JSP文件也能共享数据。


JavaBean对象在以下两种情况下结束生命周期:



  • 客户请求访问当前的JSP页面执行完毕并向客户端发回响应
  • 客户请求访问当前的JSP页面执行完毕,接着通过<jsp:forward>标记将请求转发到另一个Web组件,另一个Web组件执行完毕并向客户端发回响应结果


请求范围内的JavaBean对象存在于响应一个客户请求的整个过程中。


请求范围内的共享数据实际上存放在HttpServletRequest对象中。


会话(session)范围



共享数据的有效范围为整个HTTP会话的生命周期内,同一个HTTP会话中的Web组件共享它。



会话范围内的共享数据实际上存放在HttpSession对象中。



应用(application)范围



共享数据的有效范围为整个Web应用的生命周期内,Web应用中的所有的Web组件共享它。



应用范围内的共享数据实际上存放在ServletContext对象中。



参考资料



1. Tomcat与Java Web开发技术详解(第2版)