<document>

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.

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-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.

<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 for more control over which jsp are precompiled:

<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.

is used to compile JSP.

class-dir the destination class directory the system work path
app-dir the root directory of an application to compile required
xml if true then XML is the default parser false
prelude add a prelude include none
coda add a coda include none
tag classname specifying a tag to compile none

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

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 xml configuration file:

<web-app xmlns="http://caucho.com/ns/resin"> <app-dir>/opt/www/webapps/foo</app-dir> <xml>true</xml> </web-app> unix> java com.caucho.jsp.JspCompiler -conf /opt/resin/compile-app.xml" test/foo.jsp
</document>