链接 用户手册 参考 Apache Tomcat 开发 | Introduction |
Tomcat 5.0使用Jasper 2 JSP Engine来实现
JavaServer Pages 2.0规范。
Jasper 2被重新设计后,它的性能比原来的Jasper有极大的改善。除了基本的代码改进
以外,还有下面这些变化:
- JSP Custom Tag Pooling - Java对象例示的JSP客户自定义标签
(JSP Custom Tags)现在可以被汇集起来重新使用。这极大地提高了使用客户自定义
标签的JSP页面的性能。
- Background JSP compilation - 如果你更改了已经被编译过的JSP
页面,Jasper 2可以在后台重新编译这个页面。先前编译过的JSP页面还是被用来提供
服务。一旦新的页面被编译好了,它就可以取代旧的页面。这有助于提高你的JSP页面
在生产服务器上的可使用性。
- Recompile JSP when included page changes - Jasper 2现在可以
在编译时探测到什么时候JSP里的一个页面被更改过,并重新编译父JSP。
- JDT used to compile JSP pages - Eclipse的JDT Java编译器现在
用来完成JSP中java源代码的编译工作。这个编译器加载源代码依赖于容器的类加载器。
Ant和javac依旧可以使用。
Jasper是通过使用servlet类org.apache.jasper.servlet.JspServlet 来
实现的。
|
Configuration |
默认的Jasper是被配置用来开发web应用程序的。关于使用于Tomcat生产服务器上的
Jasper配置信息,参看生产配置(
Production Configuration)这一章。
用来实现Jasper的servlet是通过使用你的全局
$CATALINA_BASE/conf/web.xml 文件里面的参数来配置的。
- checkInterval - 如果development设置为false,reloading设置为
true,后台编译就可以实现了。checkInterval是检查一个JSP页面是否需要被重新编译
的秒数间隔。默认值是
300 秒。
- compiler - 推荐使用Ant来编译JSP页面。具体信息请查阅Ant的
文档。如果没有被赋值,则默认的Eclipse JDT Java编译器将被用来代替Ant。
没有默认值。
- classdebuginfo - 类文件在编译时是否显示排错(debugging)提示信息?
true 或false ,默认是true。
- classpath - 在编译产生的servlets时,应该使用什么class path呢?
默认的classpath是基于当前web应用程序动态地产生的。
- compilerSourceVM - 编译源文件时采用的JDK版本是什么?(默认是
JDK 1.4)
- compilerTargetVM - 生成文件是采用的JDK版本是什么?(默认是
JDK1.4)
- development - Jasper是否处于开发模式(将在每一次存取时检查JSP
是否被修改)?
true 或 false ,默认值是true 。
- enablePooling - 确定标签处理池(tag handler pooling)是否可被
使用。
true 或 false ,默认值是true 。
- engineOptionsClass - 允许指定的类来配置Jasper。如果没有指定,
则使用默认的Servlet内置参数(EmbeddedServletOptions)。
- ieClassId - 当使用<jsp:plugin>标签时要发送给Internet
Explorer的class-id值. 默认形式是
clsid:8AD9C840-044E-11D1-B3E9-00805F499D93 。
- fork - 是否让Ant把JSP页面编译进行分叉(fork),这样一来编译就
可以在与Tomcat在不同的JVM里执行?
true 或 false ,默认值是true 。
- javaEncoding - 用来产生java源文件的Java文件编码。默认是
UTF8 。
- genStringAsCharArray - 是否把字符串转换为字符数组?在某些
情况下会用到。默认
false .
- keepgenerated - 是否应该保留为每一页产生的Java源代码,而
不是把它删除掉?
true 或 false , 默认值是true 。
- mappedfile - 是否应该为每一行输入打印一个静态说明,来使排错
变得容易?
true 或 false , 默认值是true 。
- modificationTestInterval -
Checks for modification for a given
JSP file (and all its dependent files) will be performed only once every specified amount
of seconds. Setting this to 0 will cause the JSP to be checked on every access.
Default is
4 seconds.
- reloading - Should Jasper check for modified JSPs?
true or false , default false .
- scratchdir - 在编译JSP页面的时候,应该使用什么scratch目录?默认的目录是当前web应用程序的工作目录。
- trimSpaces - 样板本文里actions或指令之间的空白空间是否应该被修剪?默认值是
false 。
The Java compiler from Eclipse JDT in included as the default compiler. It is an
advanced Java compiler which will load all dependencies from the Tomcat class loader,
which will help tremendously when compiling on large installations with tens of JARs.
On fast servers, this will allow sub-second recompilation cycles for even large JSP
pages. This new compiler will be updated to support the Java 5 syntax as soon as
possible.
Apache Ant, which was used in previous Tomcat releases, can be used instead instead of
the new compiler by simply removing the common/lib/jasper-compiler-jdt.jar file,
and placing the ant.jar file from the latest Ant distribution in the
common/lib folder. If you do this, you also need to use the "javac"
argument to catalina.sh.
|
Production Configuration |
The main JSP optimization which can be done is precompilation of JSPs. However,
this might not be possible (for example, when using the jsp-property-group feature)
or practical, in which case the configuration of the Jasper servlet becomes critical.
在生产Tomcat服务器里使用Jasper 2时,你应该考虑在默认的配置上进行下列修改。
- development - To disable on access checks for JSP
pages compilation set this to
false .
- genStringAsCharArray - To generate slightly more efficient
char arrays, set this to
true .
- modificationTestInterval - If development has to be set to
true for any reason (such as dynamic generation of JSPs), setting
this to a high value will improve performance a lot.
- trimSpaces - To remove useless bytes from the response,
set this to
true .
|
Using Jikes |
如果你想要使用
Jikes来编译JSP页面:
- From your Ant installation, copy ant.jar
and (if it's available: Ant 1.5 and later) ant-launcher.jar to
$CATALINA_BASE/common/lib .
- 下载并安装jikes。jikes必须支持
-encoding 选项。执行jikes -help 来证实jikes被建造能支持-encoding。
- 把init参数
编译器 设置为jikes 。
- 在启动Tomcat时,定义属性
-Dbuild.compiler.emacs=true , 把它加入到你的CATALINA_OPTS 环境变量中。这改变了jikes输出错误信息的方式,使它与Jasper相兼容。
- 如果你得到一个错误报告说jikes不能使用UTF8编码,去试试把init参数
javaEncoding 设置为ISO-8859-1 。
|
|