JSP通常作为.jsp文件,预编译的Java文件或预编译的类文件提供吗?

在为生产环境准备WAR时,是否存在用于打包JSP的“标准”实践?

它们是否包含在“.jsp”文件中?

或者它们是作为预编译的Java文件还是预编译的类文件包含在内?

Servelts / JSP规范没有说明预编译JSP,使得此function特定于容器实现 。 您可以为特定容器预编译,例如Tomcat或WebLogic,您肯定会找到Ant任务。

通常,当您打包应用程序时,您就会知道目标。 如果它不止一个容器(比如你打包一个可下载的产品),那么你唯一的选择是将原始JSP打包到你的WAR文件中。 也就是说,当您进行开发和/或测试时,您当然可以预编译作为构建过程的一部分来a)validation您的JSP是否正确并且b)加快启动时间。 如果在构建软件时需要额外的validation步骤,您甚至可以让Eclipse为您完成。

我不认为有一种行业惯例可以采用这种方式。 根据我的经验,JSP通常打包为“原始”(未预编译)用于部署和分发,但是作为构建/测试过程的一部分进行预编译。

根据我的经验,它们只是作为.jsp文件在WAR中提供。 应用程序服务器将自动将.jsp编译为类文件。 有关jsp生命周期的更多信息,请参见此处 。

它们打包为.jsp文件本身。 请注意jsp文件大小限制为64K jsp文件大小限制