用于编译和装入 JSP 文件的 Pre-touch 工具
启用了 pre-touch 机制之后,将使在配置了该机制的 Web 模块中对所有 JavaServer Pages (JSP) 文件进行编译。还可以将某些 JSP 文件或所有 JSP 文件配置为进行类装入和 JIT 编译。
- prepareJSPs(必需)当存在此属性时,所有 JSP 文件都将在应用程序服务器启动时进行编译。此活动是在一个单独的线程中运行的,因此允许应用程序服务器并行完成其他启动操作。数字属性值表示 JSP 文件为了进行类装入和 JIT 编译而必须采用的最小大小(以千字节计)。缺省值为 0,这将使所有 JSP 文件都进行类装入和 JIT 编译。注: JSP 文件的编译与 JIT 编译不同。JSP 编译将生成字节码,而 JIT 在运行时会将字节码转换为机器代码。
- prepareJSPAttribute(可选)
pre-touch 机制和 JIT 都通过直接调用 JSP 服务方法来编译 JSP 文件,由于 JSP 文件是在上下文外调用的,因此这样使得 JSP 文件容易导致异常。通过立即检查此属性的值来避免发生这些异常,从而实现当此工具准备 JSP 时从服务方法中快速退出。此属性值可添加为请求参数,并由字母数字字符组成,正常初始化期间 JSP 文件不会使用该属性值。
- prepareJSPThreadCount(可选)
将此数字属性设置为您想要此机制启动并用来编译 JSP 文件的线程数。由于一个线程只使用一个处理器,因此,多处理器系统可以通过指定一个大于 1 的值来更好地利用此 pre-touch 机制。此属性的缺省设置为 1,表示为了对此 Web 模块执行 pre-touch 处理而创建的线程数。
- prepareJSPClassload(可选)
将此属性设置为一个整数或者 changed。输入 changed,只有已更新或之前未接触的 JSP 文件才会进行类装入,例如,那些需要从 .jsp 文件转换为 .java 文件的 JSP 文件。通过输入一个数值(例如,1000),pre-touch 工具就会从它处理的第 1000 个 JSP 文件开始进行类装入,并且对所有后续的 JSP 文件都进行类装入。这对于当启动 pre-touch 工具时应用程序服务器已停止的情况是很方便的。然后,您可以检查服务器日志以了解已经处理了多少个 JSP 文件并相应地更新 prepareJSPClassload 值以避免重复工作。如果 JSP 文件未进行类装入,那么不能对它进行 JIT 编译。因此,如果 JSP 文件不满足 prepareJSPClassload 属性的需求,但满足 prepareJSPs 属性的需求,且已经进行更新,那么系统会编译该 JSP 文件,但不会对其进行类装入或 JIT 编译。