大多数服务器端 J2EE 应用程序中有六种常用的范围类型:
  Transaction(事务)
  Request(请求)
  HTTP session(HTTP 会话)
  Application(应用程序)
  Global(全局)
  None(无)
  事务范围
  事务范围覆盖一个事务的整个生命周期。这个范围开始于一个事务的开始。这时会创建一个惟一的范围键。这个范围结束于提交或回滚事务时。这时,与事务范围相关联的所有对象被自动释放回它们的池。
  请求范围
  请求范围与一个 servlet 请求的范围对应;在容器调用 servlet 来处理请求之后,请求范围立即开始。同时会创建一个惟一的范围键。在 servlet 完成处理之前请求范围结束。这时,与这个范围相关联的所有对象被自动释放回它们的池。
  HTTP 会话范围
  HTTP 会话范围与一个 HTTP 会话的生命周期对应。它从创建一个新的 HttpSession 时开始。这时会创建一个惟一的范围键。它结束于会话被销毁或过期时。这时,与这个范围相关联的所有对象被自动释放回它们的池。
  应用程序范围
  应用程序范围覆盖应用程序的整个生命周期。它开始于把一个应用程序部署到应用服务器时。这时会创建一个惟一的范围键。这个范围结束于应用程序停止运行或从应用服务器中删除时。这时,与这个范围相关联的所有对象被自动释放回它们的池。
  全局范围
  全局范围是最大的范围。采用这种范围的对象不会被释放。
  无范围
  无范围用于不使用对象池的对象。采用这种范围的对象每次都通过自己的对象构造函数来创建,并由 Java 垃圾收集器释放。对象管理器根本不管理它们。