在Java Web应用中,由于JSP的修改实时生效等一系列特点,许多时候我们会使用JSP来做为页面来显示工具。
而本质上JSP只是一种特殊的Java文件,会在运行时生成java文件,再编译出class文件执行。
对于一个小型应用来说,可能JSP的展示时间要求不会特别高,而对于中大型的项目,涉及到大量的JSP页面时,就会在初次请求时有不少的时间消耗在生成java文件和编译class上。
所以,对于考虑Tomcat性能优化的朋友,在已经进行过JVM调优,线程池的设置、负载均衡等方式之后,可以考虑本文提到的这一项。
为了加速应用的执行,Tomcat内部提供了一项功能
JSP预编译
所谓预编译,就是在正式使用之前,已经把JSP文件经过编译过程,生成Java(Servlet)文件,再编译成class。这样后续的真实请求到来的时候,就不需要再等待这一过程。
Tomcat提供的这一功能,是一个在jasper.jar 文件中的class:
org.apache.jasper.JspC
如果你已经在阅读了调试源码,可以直接运行该类的main方法即可。如果手边没有源代码,可以通过脚本(bat/shell&