Zee*_*mee 4 java servlets java-ee
如果我有一个Servlet类,并且这个类在两个应用程序中使用 - 是两个应用程序共享的静态成员吗?此行为是由Java EE还是特定于容器指定的?
如果我有一个Servlet类,并且这个类在两个应用程序中使用 - 是两个应用程序共享的静态成员吗?
不,不会跨应用程序共享静态成员.通常,每个应用程序都与其自己的类加载器相关联,因此,Servlet类将在容器中加载两次.通过推断,不会在应用程序之间共享静态成员.
如果需要跨应用程序共享数据,建议根据您的需要使用文件,JMS队列或数据库.
此行为是由Java EE还是特定于容器指定的?
Java EE 6 Platform规范未定义类加载行为.该规范在这方面陈述如下:
EE.8.3班级装载要求
Java EE规范故意没有定义Java EE产品必须使用的类加载器的确切类型和排列.相反,规范根据组件必须或不可见的类来定义需求.
组件可见的类和资源不包括其他应用程序中其他Web模块的类.它们可能包含同一应用程序的其他Web模块中的类和资源:
EE.8.3.1 Web容器类加载要求
...
Web容器中的组件可以访问以下类和资源.便携式应用程序不得依赖于是否可以访问这些类或资源.
•如上所述,同一ear文件中包含的任何其他Web模块可访问的类和资源.
...
通过推断,Servlet类如果部署在两个不同的应用程序中,将无法访问另一个应用程序中的另一个类.
| 归档时间: |
|
| 查看次数: |
233 次 |
| 最近记录: |