org.apache.jasper.servlet
Class JasperLoader

java.lang.Object
  extended byjava.lang.ClassLoader
      extended byjava.security.SecureClassLoader
          extended byjava.net.URLClassLoader
              extended byorg.apache.jasper.servlet.JasperLoader

public class JasperLoader
extends java.net.URLClassLoader

This is a class loader that loads JSP files as though they were Java classes. It calls the compiler to compile the JSP file into a servlet and then loads the generated class.

Author:
Anil K. Vijendran, Harish Prabandham

Nested Class Summary
protected  class JasperLoader.PrivilegedLoadClass
           
 
Constructor Summary
JasperLoader(java.net.URL[] urls, java.lang.String className, java.lang.ClassLoader parent, java.security.PermissionCollection permissionCollection, java.security.CodeSource codeSource)
           
 
Method Summary
protected  java.security.PermissionCollection getPermissions(java.security.CodeSource codeSource)
          Get the Permissions for a CodeSource.
 java.lang.Class loadClass(java.lang.String name)
          Load the class with the specified name.
 java.lang.Class loadClass(java.lang.String name, boolean resolve)
          Load the class with the specified name, searching using the following algorithm until it finds and returns the class.
protected  byte[] loadClassDataFromFile(java.lang.String fileName)
          Load JSP class data from file.
 
Methods inherited from class java.net.URLClassLoader
addURL, definePackage, findClass, findResource, findResources, getURLs, newInstance, newInstance
 
Methods inherited from class java.security.SecureClassLoader
defineClass
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JasperLoader

public JasperLoader(java.net.URL[] urls,
                    java.lang.String className,
                    java.lang.ClassLoader parent,
                    java.security.PermissionCollection permissionCollection,
                    java.security.CodeSource codeSource)
Method Detail

loadClass

public java.lang.Class loadClass(java.lang.String name)
                          throws java.lang.ClassNotFoundException
Load the class with the specified name. This method searches for classes in the same manner as loadClass(String, boolean) with false as the second argument.

Parameters:
name - Name of the class to be loaded
Throws:
java.lang.ClassNotFoundException - if the class was not found

loadClass

public java.lang.Class loadClass(java.lang.String name,
                                 boolean resolve)
                          throws java.lang.ClassNotFoundException
Load the class with the specified name, searching using the following algorithm until it finds and returns the class. If the class cannot be found, returns ClassNotFoundException. If the class was found using the above steps, and the resolve flag is true, this method will then call resolveClass(Class) on the resulting Class object.

Parameters:
name - Name of the class to be loaded
resolve - If true then resolve the class
Throws:
java.lang.ClassNotFoundException - if the class was not found

getPermissions

protected final java.security.PermissionCollection getPermissions(java.security.CodeSource codeSource)
Get the Permissions for a CodeSource. Since this ClassLoader is only used for a JSP page in a web application context, we just return our preset PermissionCollection for the web app context.

Returns:
PermissionCollection for CodeSource

loadClassDataFromFile

protected byte[] loadClassDataFromFile(java.lang.String fileName)
Load JSP class data from file.



Copyright © 2000 Apache Software Foundation. All Rights Reserved.