On Thu, 12 Apr 2001, Glenn Nielsen wrote:
> Reloading is not an issue in the Tomcat 4 version of Jasper. It no longer
> uses the .java/.class versioning system because it uses a URLClassLoader for
> each JSP page compiled into a servlet. That way if the page is recompiled
> the URLClassLoader for the JSP page itself can be dumped without affecting
> the rest of the Context.
It is a very good solution, I remember it was used ( long ago ) for
servlets as well ( before tomcat ). ( messing with class loaders is
something I try to avoid, that's why I prefer explicit versioning - but
this should work in most cases as JSPs don't call each other directly and
are not called directly from other components ).
That's the whole point of refactoring jasper and separating the components
- allow multiple schemes to coexist and be easily configured.
So far there are 4 reloading mechansims jasper could use:
- no name versioning, use the normal servlet reloading
- no name versioning, one class loader per jsp
- name versioning using a single .class file ( and special class loader)
- name versioning and normal (URL)ClassLoader.
There are also 3-4 name "mangling" schemes, etc.
Flexibility and choice are good.
Costin