mmHLinux联盟
3.加速JSP编译速度mmHLinux联盟
mmHLinux联盟
当第一次访问一个JSP文件时,它会被转换为Java serverlet源码,接着被编译成Java字节码。你可以控制使用哪个编译器,默认情况下,Tomcat使用使用命令行javac进行使用的编译器。也可以使用更快的编译器,但是这里我们将介绍如何优化它们。mmHLinux联盟
mmHLinux联盟
另外一种方法是不要把所有的实现都使用JSP页面,而是使用一些不同的java模板引擎变量。显然这是一个跨越很大的决定,但是事实证明至少这种方法是只得研究的。如果你想了解更多有关在Tomcat可使用的模板语言,你可以参考Jason Hunter和William Crawford合著的《Java Servlet Programming 》一书(O'Reilly公司出版)。mmHLinux联盟
mmHLinux联盟
在Tomcat 4.0中可以使用流行而且免费的Jikes编译器。Jikes编译器的速度要由于Sun的Java编译器。首先要安装Jikes(可访问http://oss.software.ibm.com/pub/jikes 获得更多的信息),接着需要在环境变量中设置JIKESPATH包含系统运行时所需的JAR文件。装好Jikes以后还需要设置让JSP编译servlet使用Jikes,需要修改web.xml文件中jspCompilerPlugin的值:mmHLinux联盟
<servlet>mmHLinux联盟
<servlet-name>jsp</servlet-name>mmHLinux联盟
<servlet-class>mmHLinux联盟
org.apache.jasper.servlet.JspServletmmHLinux联盟
</servlet-class>mmHLinux联盟
<init-param>mmHLinux联盟
<param-name>logVerbosityLevel</param-name>mmHLinux联盟
<param-value>WARNING</param-value>mmHLinux联盟
</init-param>mmHLinux联盟
<init-param>mmHLinux联盟
<param-name>jspCompilerPlugin</param-name>mmHLinux联盟
<param-value>mmHLinux联盟
org.apache.jasper.compiler.JikesJavaCompilermmHLinux联盟
</param-value>mmHLinux联盟
</init-param>mmHLinux联盟
<init-param>mmHLinux联盟
<!-- <param-name>mmHLinux联盟
org.apache.catalina.jsp_classpathmmHLinux联盟
</param-name> -->mmHLinux联盟
<param-name>classpath</param-name>mmHLinux联盟
<param-value>mmHLinux联盟
/usr/local/jdk1.3.1-linux/jre/lib/rt.jar:mmHLinux联盟
/usr/local/lib/java/servletapi/servlet.jammHLinux联盟
r</param-value>mmHLinux联盟
</init-param>mmHLinux联盟
<load-on-startup>3</load-on-startup>mmHLinux联盟
</servlet>
mmHLinux联盟
在Tomcat 4.1(或更高版本),JSP的编译由包含在Tomcat里面的Ant程序控制器直接执行。这听起来有一点点奇怪,但这正是Ant有意为之的一部分,有一个API文档指导开发者在没有启动一个新的JVM的情况下,使用Ant。这是使用Ant进行Java开发的一大优势。另外,这也意味着你现在能够在Ant中使用任何javac支持的编译方式,这里有一个关于Apache Ant使用手册的javac page列表。使用起来是容易的,因为你只需要在 元素中定义一个名字叫“compiler”,并且在value中有一个支持编译的编译器名字,示例如下:mmHLinux联盟
<servlet>mmHLinux联盟
<servlet-name>jsp</servlet-name>mmHLinux联盟
<servlet-class>mmHLinux联盟
org.apache.jasper.servlet.JspServletmmHLinux联盟
</servlet-class>mmHLinux联盟
<init-param>mmHLinux联盟
<param-name>logVerbosityLevel</param-name>mmHLinux联盟
<param-value>WARNING</param-value>mmHLinux联盟
</init-param>mmHLinux联盟
<init-param>mmHLinux联盟
<param-name>compiler</param-name>mmHLinux联盟
<param-value>jikes</param-value>mmHLinux联盟
</init-param>mmHLinux联盟
<load-on-startup>3</load-on-startup>mmHLinux联盟
</servlet>
mmHLinux联盟
mmHLinux联盟
Ant可用的编译器mmHLinux联盟
名称 | 别名 | 调用的编译器 |
classic | javac1.1, javac1.2 | Standard JDK 1.1/1.2 compiler |
modern | javac1.3, javac1.4 | Standard JDK 1.3/1.4 compiler |
jikes | | The Jikes compiler |
| JVC | Microsoft | Microsoft command-line compiler from the Microsoft SDK for Java/Visual J++ |
| KJC | | The kopi compiler |
| GCJ | | The gcj compiler (included as part of gcc) |
| SJ | Symantec | Symantec's Java compiler |
extJavac | | Runs either the modern or classic compiler in a JVM of its own |
mmHLinux联盟
mmHLinux联盟
由于JSP页面在第一次使用时已经被编译,那么你可能希望在更新新的jsp页面后马上对它进行编译。实际上,这个过程完全可以自动化,因为可以确认的是新的JSP页面在生产服务器和在测试服务器上的运行效果是一样的。 mmHLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论