0

从 .jsp 文件转换而来的 .class 文件在哪里?

我有包含 .jsp 文件的 .war 文件,但我不希望将这些文件提供给我的客户。

我不想提供 .jsp 文件(因为它有源代码),而只是提供 .class 文件,以便网站可以运行,但不可修改。

我有什么选择?

4

2 回答 2

1

您需要JSP 预编译。在构建期间,某些工具 ( jspc) 会在首次加载 JSP 时执行通常 Tomcat 按需执行的操作 - 将它们编译成 servlet 并生成适当的web.xml片段。

当您为所有 JSP 文件生成 servlet 时,删除它们是安全的。避免将生成的 servlet 检入到 VCS 是一个好主意。

请参阅Maven 2 的 JSP 编译支持如何使 Tomcat 在启动时预编译 JSP?.

于 2013-02-18T17:19:31.893 回答
1

您的问题已在此处得到解答:“编译的 JSP Java (*_jsp.java) 文件在哪里?” .

编译后的 JSP 文件默认位于 Tomcat 环境的 /work 文件夹中。

或者,如果您使用 Eclipse IDE 并在工作区中发布应用程序,这是默认行为,您可能会在以下路径中找到工作目录:

workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\HelloWorld\org\apache\jsp\test_jsp.class

但是,如果您想要所有已编译的 JSP (*_jsp.class) 文件,您有以下选项: 按照文档中的说明将 Tomcat jspc 工具与 ant 一起使用;使用wget通过发出如下命令从 tomcat 服务器递归请求所有 *.jsp 页面,或者使用 IDE 的预编译 JSP 页面选项让 IDE 为您完成这项工作。

wget -r --no-parent -A.jsp http://domain/your-project/

这样它现在应该都被tomcat缓存了。

于 2013-02-18T17:23:00.700 回答