如果我们可以使 Tomcat/Jasper 使用 ANT 任务编译 JSP,那么将 WAR 与预编译的 JSP 作为类文件而不是 JSP 本身一起发布不是更好吗?
这样,我们就不会被 Weblogic/Webshere JSP 编译问题所束缚。他们得到的只是“类”文件。
我认为这需要以某种方式关闭“jsp”servlet。并且必须启用 Spring/Struts Servlet 才能处理“jsp”扩展。
你怎么看?在其他生产环境中更常见的是什么?
如果我们可以使 Tomcat/Jasper 使用 ANT 任务编译 JSP,那么将 WAR 与预编译的 JSP 作为类文件而不是 JSP 本身一起发布不是更好吗?
这样,我们就不会被 Weblogic/Webshere JSP 编译问题所束缚。他们得到的只是“类”文件。
我认为这需要以某种方式关闭“jsp”servlet。并且必须启用 Spring/Struts Servlet 才能处理“jsp”扩展。
你怎么看?在其他生产环境中更常见的是什么?
JSP 的编译具有以下优点。
我认为第一个优势很重要,第二个不是那么重要。我个人并不关心第一个也是唯一的第一个用户在编译 jsp 时是否会再等一两秒。但是我非常关心现在的用户在使用我的应用程序时永远不会出现编译错误。
我认为在构建期间编译 JSP 仅用于验证就足够了,而不是将生成.class
的文件与您的应用程序一起打包。但是分发.class
文件也很好。
编译的 JSP 不能跨容器移植。它们扩展了运行时特定的类。您总是可以尝试嵌入您自己的 JSP 实现,但这是一个不同的问题。
我通常会说不,这不是更好。我认为通过它太麻烦了,然后将耳朵/战争包装起来并运输。
如果您的 JSP 没有在生产环境中编译,而是在本地编译或在 QA 中编译,那么您还有其他问题需要解决。