JSP Compilation
Resin 3.0

Features
Installation
Configuration
Web Applications
IOC/AOP
Resources
JSP
Quercus
Servlets and Filters
Databases
Admin (JMX)
CMP
EJB
Amber
EJB 3.0
Security
XML and XSLT
XTP
JMS
Performance
Protocols
Third-party
Troubleshooting/FAQ

Introduction
JSP Compilation
Reference
Tutorials
Articles
FAQ
Introduction
JSP
Reference

JSP compilation causes the compilation of JSP files before they are first accessed on a live server.

  1. JspPrecompileListener
  2. JspCompiler
    1. Command line usage of JspCompile

Unless explicitly compiled ahead of time, JSP files are compiled the first time they are accessed. On large production sites, or in situations involving complicated JSP files, compilation may cause unacceptable delays to users first accessing the JSP page.

Resin provides a JspPrecompileListener that causes jsp to be compiled when the web application starts. As an alternative, Resin also provides a JspCompiler that is used to explicitly compile jsp files before they are accessed for the first time.

JspPrecompileListener

class com.caucho.jsp.JspPrecompileListener is a ServletContextListener that compiles jsp files when the web-app starts. It is activated using the <listener> Servlet configuration tag in web.xml.

The following configuration causes Resin to compile all files in the web-app that have an extension of .jsp or .jspx when the application first starts.

WEB-INF/web.xml
<web-app xmlns="http://caucho.com/ns/resin">
  <listener>
    <listener-class>com.caucho.jsp.JspPrecompileListener</listener-class>
    <init>
      <extension>jsp</extension>
      <extension>jspx</extension>
    </init>
  </listener>
</web-app>

It can also be configured in resin.conf to apply to all web-app's.

resin.conf
<web-app-default>
  <listener>
    <listener-class>com.caucho.jsp.JspPrecompileListener</listener-class>
    <init>
      <extension>jsp</extension>
      <extension>jspx</extension>
      <extension>xtp</extension>
    </init>
  </listener>
</web-app-default>

You can also use a <fileset> for more control over which jsp are precompiled:

resin.conf
<web-app>
  <listener>
    <listener-class>com.caucho.jsp.JspPrecompileListener</listener-class>
    <init>
      <fileset>
        <include>**/*.jsp</include>
        <exclude>/a.jsp</exclude>
        <exclude>/foo/c.jsp</exclude>
      </fileset>
    </init>
  </listener>
</web-app>
The first line includes all jsp's, it's the same as specifying jsp. The following lines exclude specific jsp.

JspCompiler

class com.caucho.jsp.JspCompiler is used to compile JSP.

ParameterMeaningdefault
class-dirthe destination class directorythe system work path
app-dirthe root directory of an application to compilerequired
xmlif true then XML is the default parserfalse
preludeadd a prelude includenone
codaadd a coda includenone
tagclassname specifying a tag to compilenone

Command line usage of JspCompile

Command line usage accepts arguments that correspond to the parameters available to the parameters of the JSpCompiler class.

command line
unix> java com.caucho.jsp.JspCompiler -app-dir "/opt/www/foo" test/foo.jsp

com.caucho.jsp.JspCompiler accepts a -conf argument, which points to a web-app configuration.

compile-app.xml
  
<web-app xmlns="http://caucho.com/ns/resin">
  <document-directory>/opt/www/foo</document-directory>
    
  <resin:import path="/opt/resin/conf/app-default.xml"/>
</web-app>

command line with compile-app.xml conf file
unix> java com.caucho.jsp.JspCompiler -conf /opt/resin/compile-app.xml" test/foo.jsp


Introduction
JSP
Reference
Copyright © 1998-2006 Caucho Technology, Inc. All rights reserved.
Resin® is a registered trademark, and HardCoretm and Quercustm are trademarks of Caucho Technology, Inc.