Apusic的JSP编译器会自动的处理JSP页面,所以通常不需要直接使用JSP编译器。但是在一些特殊的情况下,直接使用Apusic的JSP编译器对JSP源文件进行预编译会非常有用。Apusic提供了jspc工具对JSP文件进行预编译,它的工作原理是首先对JSP源文件进行解析生成java文件,然后使用标准的Java编译器编译。
使用步骤如下所述:
编辑$APUSIC_HOME/bin/jspc.xml。需要修改的几个属性说明如下:
<!-- 需预编译的web模块路径 --> <property name="src" value="${apusic.home}/domains/mydomain/applications/default/public_html"/>
将value属性修改为需预编译的web模块的路径,默认是mydomain下的default应用
<!-- 预编译的class文件的存放路径 --> <property name="dest" value="${apusic.home}/domains/mydomain/applications/default/public_html/WEB-INF/classes"/>
将value属性修改为预编译的class文件的存放路径,注意:编译生成的类文件一定要存放在WEB-INF\classes目录下
<!-- 编译依赖的jar文件 --> <classpath> <pathelement location="${apusic.home}/lib/apusic.jar"/> <pathelement location="${apusic.home}/lib/operamasks-impl.jar"/> <pathelement location="${apusic.home}/common/javaee.jar"/> </classpath>
添加所要编译的jsp依赖的jar文件。
在命令行提示符下进入$APUSIC_HOME/bin目录,执行jspc即可开始预编译
<apusicjspc></apusicjspc>可配置的属性包括:
选项 | 描述 |
srcDir | 需预编译的web模块路径 |
destDir | 预编译的class文件的存放路径 |
keep | 是否保留预编译过程中生成的java文件,默认为false |
verbose | 输出冗余信息,默认为false |
nopkg | 生成的类中不包含包名,默认为false |
encoding | 指定缺省的JSP字符编码 |
compiler | 指定Java编译器 |
由于已经对JSP进行了预编译,所以应该在WEB-INF\web.xml部署描述文件中作适当设置不再编译JSP文件:
<context-param> <param-name>jsp.nocompile</param-name> <param-value>true</param-value> </context-param>
如果想将jspc引入项目的ant构建环境中,只需要仿照$APUSIC_HOME/bin/jspc.xml编写构建任务,并将$APUSIC_HOME/lib/ant/ant-apusic.jar加入项目构建的classpath中。
对JSP进行预编译处理后可以按照正常的步骤部署Web应用。