从 .jsp 文件转换而来的 .class 文件在哪里?
我有包含 .jsp 文件的 .war 文件,但我不希望将这些文件提供给我的客户。
我不想提供 .jsp 文件(因为它有源代码),而只是提供 .class 文件,以便网站可以运行,但不可修改。
我有什么选择?
从 .jsp 文件转换而来的 .class 文件在哪里?
我有包含 .jsp 文件的 .war 文件,但我不希望将这些文件提供给我的客户。
我不想提供 .jsp 文件(因为它有源代码),而只是提供 .class 文件,以便网站可以运行,但不可修改。
我有什么选择?
您需要JSP 预编译。在构建期间,某些工具 ( jspc
) 会在首次加载 JSP 时执行通常 Tomcat 按需执行的操作 - 将它们编译成 servlet 并生成适当的web.xml
片段。
当您为所有 JSP 文件生成 servlet 时,删除它们是安全的。避免将生成的 servlet 检入到 VCS 是一个好主意。
您的问题已在此处得到解答:“编译的 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缓存了。