## org.apache.jasper.servlet
Class JasperLoader

    java.lang.Object
      java.lang.ClassLoader
          java.security.SecureClassLoader
              java.net.URLClassLoader
                  org.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`.
  - Call `findLoadedClass(String)` to check if the class has already been loaded. If it has, the same `Class` object is returned.
  - If the `delegate` property is set to `true`, call the `loadClass()` method of the parent class loader, if any.
  - Call `findClass()` to find this class in our locally defined repositories.
  - Call the `loadClass()` method of our parent class loader, if any.
  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.

  Parameters:
    `codeSource` - where the code was loaded from
  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.