2

由于 JSP 遵循标准 API,我可以在我的项目中预编译它们,然后将结果部署到任何服务器上吗?

具体来说,我使用的是 Tomcat、JBoss 和 WebSphere。

4

2 回答 2

4

不,不是。如果您查看由 JSP 编译器创建的 java 源代码,您会发现它扩展了容器专有的基类。例如,JBoss 4 的 servlet 容器生成扩展的 JSP 类org.apache.jasper.runtime.HttpJspBase,这是 Tomcat 和 JBossWeb 特定的。

因此,您可能能够在不同的基于 tomcat 的服务器之间重用预编译的 JSP,但即便如此,它也可能无法正常工作。

于 2010-07-27T09:58:15.210 回答
1

由于应用服务器之间的 servlet/JSP 引擎不同,因此可能会添加不可移植的字节码。

我必须写一个测试来确认它。如果我有时间,我会尝试使用 Tomcat 和 WebLogic 并报告回来。

于 2010-07-27T09:57:38.147 回答