public void compile ( boolean compileClass ) throws FileNotFoundException , JasperException , Exception { try { // Create the output directory for the generated files // Always try and create the directory tree, in case the generated // directories were deleted after the server was started. ctxt . makeOutputDir ( ctxt . getOutputDir ( ) ) ; // If errDispatcher is nulled from a previous compilation of the // same page, instantiate one here. if ( errDispatcher == null ) { errDispatcher = new ErrorDispatcher ( jspcMode ) ; } generateJava ( ) ; if ( compileClass ) { generateClass ( ) ; } else { // If called from jspc to only compile to .java files, // make sure that .java files are written to disk. javaCompiler . doJavaFile ( ctxt . keepGenerated ( ) ) ; } } finally { if ( tfp != null ) { tfp . removeProtoTypeFiles ( null ) ; } javaCompiler . release ( ) ; // Make sure these object which are only used during the // generation and compilation of the JSP page get // dereferenced so that they can be GC'd and reduce the // memory footprint. tfp = null ; errDispatcher = null ; if ( ! jspcMode ) { pageInfo = null ; } pageNodes = null ; if ( ctxt . getWriter ( ) != null ) { ctxt . getWriter ( ) . close ( ) ; ctxt . setWriter ( null ) ; } } }
Compile the jsp file from the current engine context . As an side - effect tag files that are referenced by this page are also compiled .