RE: Jasper 2 class files

2002-08-22 Thread John Trollinger

This would be an easy change to JspC so that you could have a flag that
would generate package names instead of using the standard package name.

If there is any interest in this let me know..

 

-Original Message-
From: Steve Downey [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, August 21, 2002 8:00 PM
To: Tomcat Developers List
Subject: RE: Jasper 2 class files

However, in the context of JspC, it's a problem to map them to the same
package and class name. The custom URLClassLoader works within the JSP
engine, but the general servlet class loader doesn't know about those
rules.
So when it sees those entries in web.xml, it will map all hello.jsp
files,
no matter where they reside, to org.apache.jsp.hello_jsp.



 -Original Message-
 From: Glenn Nielsen [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, August 21, 2002 7:54 PM
 To: Tomcat Developers List
 Subject: Re: Jasper 2 class files


 Yes, you can have two JSP pages with the same name but in
 different directories
 and everything will work fine even though they have the same
 package and class name.
 This is because a custom URLClassLoader is created for each
 individual JSP page.
 That class loader only loads the one java class for that one JSP page.

 For example:

 /myapp/this/hello.jsp
 /muapp/that/hello.jsp

 The class files will end up in:

 $CATALINA_BASE/work/Standalone/localhost/myapp/this/hello.class
 $CATALINA_BASE/work/Standalone/localhost/myapp/that/hello.class

 Since two different URLClassLoaders are used Jasper can
 load each of the above two classes even though they have
 the same package and class name.

 The old methods Jasper used for loading java classes generated for JSP
 pages was very inefficient.  The above change simplified Jasper and
 improved its performance by 25%.

 Regards,

 Glenn

 John Trollinger wrote:
  Greg,
 
  I took this off of the bug tracking because it is not a bug and I
  thought there are people a lot smarter than me in this mailing list
that
  could help answer you questions.
 
  I do not know how jasper differentiates between hello.jsp and
  /anydir/hello.jsp when the both compile to a class
  org.jasper.jsp.hello_jsp but it does work...
 
  My hello.jsp in the root dir prints hello Jasper world and my
hello.jsp
  in the subdir prints hello john world.  It works without a hitch..
  (notice that I have removed the .java files for the 2 hello world
files
  and it did not regenerate them)
 
  Here is my file list
 
  Directory of C:\appserver\Tomcat\jspcache
 
  08/21/2002  02:19 PMDIR  .
  08/21/2002  02:19 PMDIR  ..
  08/21/2002  11:47 AM 3,496 date_jsp.java
  08/21/2002  11:52 AM 2,975 hello_jsp.class
  08/21/2002  11:51 AM 2,883 index_jsp.class
  08/21/2002  11:51 AM 1,863 index_jsp.java
  08/21/2002  01:27 PMDIR  subdir
 4 File(s) 11,217 bytes
 
   Directory of C:\appserver\Tomcat\jspcache\subdir
 
  08/21/2002  01:27 PMDIR  .
  08/21/2002  01:27 PMDIR  ..
  08/21/2002  11:47 AM 3,334 date2_jsp.java
  08/21/2002  11:52 AM 2,970 hello_jsp.class
 
  Here is my jsp.xml
 
  !--
  Automatically created by Tomcat JspC.
  Place this fragement in the web.xml before all icon, display-name,
  description, distributable, and context-param elements.
  --
 
  servlet
  servlet-nameorg.apache.jsp.date_jsp/servlet-name
  servlet-classorg.apache.jsp.date_jsp/servlet-class
  /servlet
 
  servlet
  servlet-nameorg.apache.jsp.hello_jsp/servlet-name
  servlet-classorg.apache.jsp.hello_jsp/servlet-class
  /servlet
 
  servlet
  servlet-nameorg.apache.jsp.date2_jsp/servlet-name
  servlet-classorg.apache.jsp.date2_jsp/servlet-class
  /servlet
 
  servlet
  servlet-nameorg.apache.jsp.hello_jsp/servlet-name
  servlet-classorg.apache.jsp.hello_jsp/servlet-class
  /servlet
 
  servlet-mapping
  servlet-nameorg.apache.jsp.date_jsp/servlet-name
  url-pattern/date.jsp/url-pattern
  /servlet-mapping
 
  servlet-mapping
  servlet-nameorg.apache.jsp.hello_jsp/servlet-name
  url-pattern/hello.jsp/url-pattern
  /servlet-mapping
 
  servlet-mapping
  servlet-nameorg.apache.jsp.date2_jsp/servlet-name
  url-pattern/subdir/date2.jsp/url-pattern
  /servlet-mapping
 
  servlet-mapping
  servlet-nameorg.apache.jsp.hello_jsp/servlet-name
  url-pattern/subdir/hello.jsp/url-pattern
  /servlet-mapping
 
  !--
  All session-config, mime-mapping, welcome-file-list, error-page,
taglib,
  resource-ref, security-constraint, login-config, security-role,
  env-entry, and ejb-ref elements should follow this fragment.
  --
 
 
  --
  To unsubscribe, e-mail:
 mailto:[EMAIL PROTECTED]
  For additional commands, e-mail:
 mailto:[EMAIL

Jasper 2 class files

2002-08-21 Thread John Trollinger

Greg, 

I took this off of the bug tracking because it is not a bug and I
thought there are people a lot smarter than me in this mailing list that
could help answer you questions.  

I do not know how jasper differentiates between hello.jsp and
/anydir/hello.jsp when the both compile to a class
org.jasper.jsp.hello_jsp but it does work...

My hello.jsp in the root dir prints hello Jasper world and my hello.jsp
in the subdir prints hello john world.  It works without a hitch..
(notice that I have removed the .java files for the 2 hello world files
and it did not regenerate them)

Here is my file list

Directory of C:\appserver\Tomcat\jspcache

08/21/2002  02:19 PMDIR  .
08/21/2002  02:19 PMDIR  ..
08/21/2002  11:47 AM 3,496 date_jsp.java
08/21/2002  11:52 AM 2,975 hello_jsp.class
08/21/2002  11:51 AM 2,883 index_jsp.class
08/21/2002  11:51 AM 1,863 index_jsp.java
08/21/2002  01:27 PMDIR  subdir
   4 File(s) 11,217 bytes

 Directory of C:\appserver\Tomcat\jspcache\subdir

08/21/2002  01:27 PMDIR  .
08/21/2002  01:27 PMDIR  ..
08/21/2002  11:47 AM 3,334 date2_jsp.java
08/21/2002  11:52 AM 2,970 hello_jsp.class

Here is my jsp.xml

!--
Automatically created by Tomcat JspC.
Place this fragement in the web.xml before all icon, display-name,
description, distributable, and context-param elements.
--

servlet
servlet-nameorg.apache.jsp.date_jsp/servlet-name
servlet-classorg.apache.jsp.date_jsp/servlet-class
/servlet

servlet
servlet-nameorg.apache.jsp.hello_jsp/servlet-name
servlet-classorg.apache.jsp.hello_jsp/servlet-class
/servlet

servlet
servlet-nameorg.apache.jsp.date2_jsp/servlet-name
servlet-classorg.apache.jsp.date2_jsp/servlet-class
/servlet

servlet
servlet-nameorg.apache.jsp.hello_jsp/servlet-name
servlet-classorg.apache.jsp.hello_jsp/servlet-class
/servlet

servlet-mapping
servlet-nameorg.apache.jsp.date_jsp/servlet-name
url-pattern/date.jsp/url-pattern
/servlet-mapping

servlet-mapping
servlet-nameorg.apache.jsp.hello_jsp/servlet-name
url-pattern/hello.jsp/url-pattern
/servlet-mapping

servlet-mapping
servlet-nameorg.apache.jsp.date2_jsp/servlet-name
url-pattern/subdir/date2.jsp/url-pattern
/servlet-mapping

servlet-mapping
servlet-nameorg.apache.jsp.hello_jsp/servlet-name
url-pattern/subdir/hello.jsp/url-pattern
/servlet-mapping

!--
All session-config, mime-mapping, welcome-file-list, error-page, taglib,
resource-ref, security-constraint, login-config, security-role,
env-entry, and ejb-ref elements should follow this fragment.
--


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: Jasper 2 class files

2002-08-21 Thread Steve Downey

Is jspcache the place that Tomcat is looking for generated classes? If so, 
then the custom JSP classloader is doing its magic.

The java and class files produced by the JspC command line compiler should be 
able to be jared up and placed into the WEB-INF directory, like any other 
servlet.  And the web.xml then maps the jsp URIs to servlets.

Jasper 1 could do this, I provided some of the patches to make it work.

The real test is to take all of the output from JspC and create a WAR file 
from it. Without the base jsp files. This WAR should operate in ANY servlet 
container. 


On Wednesday 21 August 2002 02:22 pm, John Trollinger wrote:
 Greg,

 I took this off of the bug tracking because it is not a bug and I
 thought there are people a lot smarter than me in this mailing list that
 could help answer you questions.

 I do not know how jasper differentiates between hello.jsp and
 /anydir/hello.jsp when the both compile to a class
 org.jasper.jsp.hello_jsp but it does work...

 My hello.jsp in the root dir prints hello Jasper world and my hello.jsp
 in the subdir prints hello john world.  It works without a hitch..
 (notice that I have removed the .java files for the 2 hello world files
 and it did not regenerate them)

 Here is my file list

 Directory of C:\appserver\Tomcat\jspcache

 08/21/2002  02:19 PMDIR  .
 08/21/2002  02:19 PMDIR  ..
 08/21/2002  11:47 AM 3,496 date_jsp.java
 08/21/2002  11:52 AM 2,975 hello_jsp.class
 08/21/2002  11:51 AM 2,883 index_jsp.class
 08/21/2002  11:51 AM 1,863 index_jsp.java
 08/21/2002  01:27 PMDIR  subdir
4 File(s) 11,217 bytes

  Directory of C:\appserver\Tomcat\jspcache\subdir

 08/21/2002  01:27 PMDIR  .
 08/21/2002  01:27 PMDIR  ..
 08/21/2002  11:47 AM 3,334 date2_jsp.java
 08/21/2002  11:52 AM 2,970 hello_jsp.class

 Here is my jsp.xml

 !--
 Automatically created by Tomcat JspC.
 Place this fragement in the web.xml before all icon, display-name,
 description, distributable, and context-param elements.
 --

   servlet
   servlet-nameorg.apache.jsp.date_jsp/servlet-name
   servlet-classorg.apache.jsp.date_jsp/servlet-class
   /servlet

   servlet
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   servlet-classorg.apache.jsp.hello_jsp/servlet-class
   /servlet

   servlet
   servlet-nameorg.apache.jsp.date2_jsp/servlet-name
   servlet-classorg.apache.jsp.date2_jsp/servlet-class
   /servlet

   servlet
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   servlet-classorg.apache.jsp.hello_jsp/servlet-class
   /servlet

   servlet-mapping
   servlet-nameorg.apache.jsp.date_jsp/servlet-name
   url-pattern/date.jsp/url-pattern
   /servlet-mapping

   servlet-mapping
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   url-pattern/hello.jsp/url-pattern
   /servlet-mapping

   servlet-mapping
   servlet-nameorg.apache.jsp.date2_jsp/servlet-name
   url-pattern/subdir/date2.jsp/url-pattern
   /servlet-mapping

   servlet-mapping
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   url-pattern/subdir/hello.jsp/url-pattern
   /servlet-mapping

 !--
 All session-config, mime-mapping, welcome-file-list, error-page, taglib,
 resource-ref, security-constraint, login-config, security-role,
 env-entry, and ejb-ref elements should follow this fragment.
 --


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




RE: Jasper 2 class files

2002-08-21 Thread John Trollinger

If you take the generated class files and war them up and just call them
as servlets how does the classloader differentiate
/org.jasper.jsp.hello_jsp from /subdir/org.jasper.jsp.hello_jsp.  I can
see how it does it when a JSP file exists but if you just move the
generated files over I don't see how the classloader could figure this
out?

If this is in your web.xml how does it know one hello_jsp from the other
without the jsp pages there and without going through jasper?

servlet
servlet-nameorg.apache.jsp.hello_jsp/servlet-name
servlet-classorg.apache.jsp.hello_jsp/servlet-class
/servlet

servlet-mapping
servlet-nameorg.apache.jsp.hello_jsp/servlet-name
url-pattern/subdir/hello.jsp/url-pattern
/servlet-mapping

-Original Message-
From: Steve Downey [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, August 21, 2002 2:56 PM
To: Tomcat Developers List
Subject: Re: Jasper 2 class files

Is jspcache the place that Tomcat is looking for generated classes? If
so, 
then the custom JSP classloader is doing its magic.

The java and class files produced by the JspC command line compiler
should be 
able to be jared up and placed into the WEB-INF directory, like any
other 
servlet.  And the web.xml then maps the jsp URIs to servlets.

Jasper 1 could do this, I provided some of the patches to make it work.

The real test is to take all of the output from JspC and create a WAR
file 
from it. Without the base jsp files. This WAR should operate in ANY
servlet 
container. 


On Wednesday 21 August 2002 02:22 pm, John Trollinger wrote:
 Greg,

 I took this off of the bug tracking because it is not a bug and I
 thought there are people a lot smarter than me in this mailing list
that
 could help answer you questions.

 I do not know how jasper differentiates between hello.jsp and
 /anydir/hello.jsp when the both compile to a class
 org.jasper.jsp.hello_jsp but it does work...

 My hello.jsp in the root dir prints hello Jasper world and my
hello.jsp
 in the subdir prints hello john world.  It works without a hitch..
 (notice that I have removed the .java files for the 2 hello world
files
 and it did not regenerate them)

 Here is my file list

 Directory of C:\appserver\Tomcat\jspcache

 08/21/2002  02:19 PMDIR  .
 08/21/2002  02:19 PMDIR  ..
 08/21/2002  11:47 AM 3,496 date_jsp.java
 08/21/2002  11:52 AM 2,975 hello_jsp.class
 08/21/2002  11:51 AM 2,883 index_jsp.class
 08/21/2002  11:51 AM 1,863 index_jsp.java
 08/21/2002  01:27 PMDIR  subdir
4 File(s) 11,217 bytes

  Directory of C:\appserver\Tomcat\jspcache\subdir

 08/21/2002  01:27 PMDIR  .
 08/21/2002  01:27 PMDIR  ..
 08/21/2002  11:47 AM 3,334 date2_jsp.java
 08/21/2002  11:52 AM 2,970 hello_jsp.class

 Here is my jsp.xml

 !--
 Automatically created by Tomcat JspC.
 Place this fragement in the web.xml before all icon, display-name,
 description, distributable, and context-param elements.
 --

   servlet
   servlet-nameorg.apache.jsp.date_jsp/servlet-name
   servlet-classorg.apache.jsp.date_jsp/servlet-class
   /servlet

   servlet
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   servlet-classorg.apache.jsp.hello_jsp/servlet-class
   /servlet

   servlet
   servlet-nameorg.apache.jsp.date2_jsp/servlet-name
   servlet-classorg.apache.jsp.date2_jsp/servlet-class
   /servlet

   servlet
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   servlet-classorg.apache.jsp.hello_jsp/servlet-class
   /servlet

   servlet-mapping
   servlet-nameorg.apache.jsp.date_jsp/servlet-name
   url-pattern/date.jsp/url-pattern
   /servlet-mapping

   servlet-mapping
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   url-pattern/hello.jsp/url-pattern
   /servlet-mapping

   servlet-mapping
   servlet-nameorg.apache.jsp.date2_jsp/servlet-name
   url-pattern/subdir/date2.jsp/url-pattern
   /servlet-mapping

   servlet-mapping
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   url-pattern/subdir/hello.jsp/url-pattern
   /servlet-mapping

 !--
 All session-config, mime-mapping, welcome-file-list, error-page,
taglib,
 resource-ref, security-constraint, login-config, security-role,
 env-entry, and ejb-ref elements should follow this fragment.
 --


--
To unsubscribe, e-mail:
mailto:[EMAIL PROTECTED]
For additional commands, e-mail:
mailto:[EMAIL PROTECTED]


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




RE: Jasper 2 class files

2002-08-21 Thread Steve Downey

Bingo! It can't!

{BTW, it shouldn't be org.jasper.x, as that's Paul Jasper's site,
whoever he is}

What should be happening with JspC [and in the JspServlet IMO] is:
/hello.jsp = org.apache.jsp.hello_jsp in {output}/hello_jsp.java
/subdir/hello.jsp = org.apache.jsp.subdir.hello_jsp in
{output}/subdir/hello_jsp.java

with the resultant web.xml fragment:

servlet
servlet-nameorg.apache.jsp.hello_jsp/servlet-name
servlet-classorg.apache.jsp.hello_jsp/servlet-class
/servlet
servlet
servlet-nameorg.apache.jsp.subdir.hello_jsp/servlet-name
servlet-classorg.apache.jsp.subdir.hello_jsp/servlet-class
/servlet
servlet-mapping
servlet-nameorg.apache.jsp.hello_jsp/servlet-name
url-pattern/hello.jsp/url-pattern
/servlet-mapping
servlet-mapping
servlet-nameorg.apache.jsp.subdir.hello_jsp/servlet-name
url-pattern/subdir/hello.jsp/url-pattern
/servlet-mapping

Then they can be compiled by an ordinary javac ant task, and warred and
deployed in any servlet container.

Now, why might you want to do this?

The resultant WAR file can be put into a container that doesn't have JSP or
tools.jar support. It's great for embedded applications. Much lower
overhead, and more predictable response. It's also great for QA. You test
exactly the bits that get shipped.


 -Original Message-
 From: John Trollinger [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, August 21, 2002 3:16 PM
 To: 'Tomcat Developers List'
 Subject: RE: Jasper 2 class files


 If you take the generated class files and war them up and just call them
 as servlets how does the classloader differentiate
 /org.jasper.jsp.hello_jsp from /subdir/org.jasper.jsp.hello_jsp.  I can
 see how it does it when a JSP file exists but if you just move the
 generated files over I don't see how the classloader could figure this
 out?

 If this is in your web.xml how does it know one hello_jsp from the other
 without the jsp pages there and without going through jasper?

   servlet
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   servlet-classorg.apache.jsp.hello_jsp/servlet-class
   /servlet

   servlet-mapping
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   url-pattern/subdir/hello.jsp/url-pattern
   /servlet-mapping

 -Original Message-
 From: Steve Downey [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, August 21, 2002 2:56 PM
 To: Tomcat Developers List
 Subject: Re: Jasper 2 class files

 Is jspcache the place that Tomcat is looking for generated classes? If
 so,
 then the custom JSP classloader is doing its magic.

 The java and class files produced by the JspC command line compiler
 should be
 able to be jared up and placed into the WEB-INF directory, like any
 other
 servlet.  And the web.xml then maps the jsp URIs to servlets.

 Jasper 1 could do this, I provided some of the patches to make it work.

 The real test is to take all of the output from JspC and create a WAR
 file
 from it. Without the base jsp files. This WAR should operate in ANY
 servlet
 container.


 On Wednesday 21 August 2002 02:22 pm, John Trollinger wrote:
  Greg,
 
  I took this off of the bug tracking because it is not a bug and I
  thought there are people a lot smarter than me in this mailing list
 that
  could help answer you questions.
 
  I do not know how jasper differentiates between hello.jsp and
  /anydir/hello.jsp when the both compile to a class
  org.jasper.jsp.hello_jsp but it does work...
 
  My hello.jsp in the root dir prints hello Jasper world and my
 hello.jsp
  in the subdir prints hello john world.  It works without a hitch..
  (notice that I have removed the .java files for the 2 hello world
 files
  and it did not regenerate them)
 
  Here is my file list
 
  Directory of C:\appserver\Tomcat\jspcache
 
  08/21/2002  02:19 PMDIR  .
  08/21/2002  02:19 PMDIR  ..
  08/21/2002  11:47 AM 3,496 date_jsp.java
  08/21/2002  11:52 AM 2,975 hello_jsp.class
  08/21/2002  11:51 AM 2,883 index_jsp.class
  08/21/2002  11:51 AM 1,863 index_jsp.java
  08/21/2002  01:27 PMDIR  subdir
 4 File(s) 11,217 bytes
 
   Directory of C:\appserver\Tomcat\jspcache\subdir
 
  08/21/2002  01:27 PMDIR  .
  08/21/2002  01:27 PMDIR  ..
  08/21/2002  11:47 AM 3,334 date2_jsp.java
  08/21/2002  11:52 AM 2,970 hello_jsp.class
 
  Here is my jsp.xml
 
  !--
  Automatically created by Tomcat JspC.
  Place this fragement in the web.xml before all icon, display-name,
  description, distributable, and context-param elements.
  --
 
  servlet
  servlet-nameorg.apache.jsp.date_jsp/servlet-name
  servlet-classorg.apache.jsp.date_jsp/servlet-class
  /servlet
 
  servlet
  servlet-nameorg.apache.jsp.hello_jsp/servlet-name
  servlet-classorg.apache.jsp.hello_jsp

Re: Jasper 2 class files

2002-08-21 Thread Glenn Nielsen

Yes, you can have two JSP pages with the same name but in different directories
and everything will work fine even though they have the same package and class name.
This is because a custom URLClassLoader is created for each individual JSP page.
That class loader only loads the one java class for that one JSP page.

For example:

/myapp/this/hello.jsp
/muapp/that/hello.jsp

The class files will end up in:

$CATALINA_BASE/work/Standalone/localhost/myapp/this/hello.class
$CATALINA_BASE/work/Standalone/localhost/myapp/that/hello.class

Since two different URLClassLoaders are used Jasper can
load each of the above two classes even though they have
the same package and class name.

The old methods Jasper used for loading java classes generated for JSP
pages was very inefficient.  The above change simplified Jasper and
improved its performance by 25%.

Regards,

Glenn

John Trollinger wrote:
 Greg, 
 
 I took this off of the bug tracking because it is not a bug and I
 thought there are people a lot smarter than me in this mailing list that
 could help answer you questions.  
 
 I do not know how jasper differentiates between hello.jsp and
 /anydir/hello.jsp when the both compile to a class
 org.jasper.jsp.hello_jsp but it does work...
 
 My hello.jsp in the root dir prints hello Jasper world and my hello.jsp
 in the subdir prints hello john world.  It works without a hitch..
 (notice that I have removed the .java files for the 2 hello world files
 and it did not regenerate them)
 
 Here is my file list
 
 Directory of C:\appserver\Tomcat\jspcache
 
 08/21/2002  02:19 PMDIR  .
 08/21/2002  02:19 PMDIR  ..
 08/21/2002  11:47 AM 3,496 date_jsp.java
 08/21/2002  11:52 AM 2,975 hello_jsp.class
 08/21/2002  11:51 AM 2,883 index_jsp.class
 08/21/2002  11:51 AM 1,863 index_jsp.java
 08/21/2002  01:27 PMDIR  subdir
4 File(s) 11,217 bytes
 
  Directory of C:\appserver\Tomcat\jspcache\subdir
 
 08/21/2002  01:27 PMDIR  .
 08/21/2002  01:27 PMDIR  ..
 08/21/2002  11:47 AM 3,334 date2_jsp.java
 08/21/2002  11:52 AM 2,970 hello_jsp.class
 
 Here is my jsp.xml
 
 !--
 Automatically created by Tomcat JspC.
 Place this fragement in the web.xml before all icon, display-name,
 description, distributable, and context-param elements.
 --
 
   servlet
   servlet-nameorg.apache.jsp.date_jsp/servlet-name
   servlet-classorg.apache.jsp.date_jsp/servlet-class
   /servlet
 
   servlet
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   servlet-classorg.apache.jsp.hello_jsp/servlet-class
   /servlet
 
   servlet
   servlet-nameorg.apache.jsp.date2_jsp/servlet-name
   servlet-classorg.apache.jsp.date2_jsp/servlet-class
   /servlet
 
   servlet
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   servlet-classorg.apache.jsp.hello_jsp/servlet-class
   /servlet
 
   servlet-mapping
   servlet-nameorg.apache.jsp.date_jsp/servlet-name
   url-pattern/date.jsp/url-pattern
   /servlet-mapping
 
   servlet-mapping
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   url-pattern/hello.jsp/url-pattern
   /servlet-mapping
 
   servlet-mapping
   servlet-nameorg.apache.jsp.date2_jsp/servlet-name
   url-pattern/subdir/date2.jsp/url-pattern
   /servlet-mapping
 
   servlet-mapping
   servlet-nameorg.apache.jsp.hello_jsp/servlet-name
   url-pattern/subdir/hello.jsp/url-pattern
   /servlet-mapping
 
 !--
 All session-config, mime-mapping, welcome-file-list, error-page, taglib,
 resource-ref, security-constraint, login-config, security-role,
 env-entry, and ejb-ref elements should follow this fragment.
 --
 
 
 --
 To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
 For additional commands, e-mail: mailto:[EMAIL PROTECTED]




--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




RE: Jasper 2 class files

2002-08-21 Thread Steve Downey

However, in the context of JspC, it's a problem to map them to the same
package and class name. The custom URLClassLoader works within the JSP
engine, but the general servlet class loader doesn't know about those rules.
So when it sees those entries in web.xml, it will map all hello.jsp files,
no matter where they reside, to org.apache.jsp.hello_jsp.



 -Original Message-
 From: Glenn Nielsen [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, August 21, 2002 7:54 PM
 To: Tomcat Developers List
 Subject: Re: Jasper 2 class files


 Yes, you can have two JSP pages with the same name but in
 different directories
 and everything will work fine even though they have the same
 package and class name.
 This is because a custom URLClassLoader is created for each
 individual JSP page.
 That class loader only loads the one java class for that one JSP page.

 For example:

 /myapp/this/hello.jsp
 /muapp/that/hello.jsp

 The class files will end up in:

 $CATALINA_BASE/work/Standalone/localhost/myapp/this/hello.class
 $CATALINA_BASE/work/Standalone/localhost/myapp/that/hello.class

 Since two different URLClassLoaders are used Jasper can
 load each of the above two classes even though they have
 the same package and class name.

 The old methods Jasper used for loading java classes generated for JSP
 pages was very inefficient.  The above change simplified Jasper and
 improved its performance by 25%.

 Regards,

 Glenn

 John Trollinger wrote:
  Greg,
 
  I took this off of the bug tracking because it is not a bug and I
  thought there are people a lot smarter than me in this mailing list that
  could help answer you questions.
 
  I do not know how jasper differentiates between hello.jsp and
  /anydir/hello.jsp when the both compile to a class
  org.jasper.jsp.hello_jsp but it does work...
 
  My hello.jsp in the root dir prints hello Jasper world and my hello.jsp
  in the subdir prints hello john world.  It works without a hitch..
  (notice that I have removed the .java files for the 2 hello world files
  and it did not regenerate them)
 
  Here is my file list
 
  Directory of C:\appserver\Tomcat\jspcache
 
  08/21/2002  02:19 PMDIR  .
  08/21/2002  02:19 PMDIR  ..
  08/21/2002  11:47 AM 3,496 date_jsp.java
  08/21/2002  11:52 AM 2,975 hello_jsp.class
  08/21/2002  11:51 AM 2,883 index_jsp.class
  08/21/2002  11:51 AM 1,863 index_jsp.java
  08/21/2002  01:27 PMDIR  subdir
 4 File(s) 11,217 bytes
 
   Directory of C:\appserver\Tomcat\jspcache\subdir
 
  08/21/2002  01:27 PMDIR  .
  08/21/2002  01:27 PMDIR  ..
  08/21/2002  11:47 AM 3,334 date2_jsp.java
  08/21/2002  11:52 AM 2,970 hello_jsp.class
 
  Here is my jsp.xml
 
  !--
  Automatically created by Tomcat JspC.
  Place this fragement in the web.xml before all icon, display-name,
  description, distributable, and context-param elements.
  --
 
  servlet
  servlet-nameorg.apache.jsp.date_jsp/servlet-name
  servlet-classorg.apache.jsp.date_jsp/servlet-class
  /servlet
 
  servlet
  servlet-nameorg.apache.jsp.hello_jsp/servlet-name
  servlet-classorg.apache.jsp.hello_jsp/servlet-class
  /servlet
 
  servlet
  servlet-nameorg.apache.jsp.date2_jsp/servlet-name
  servlet-classorg.apache.jsp.date2_jsp/servlet-class
  /servlet
 
  servlet
  servlet-nameorg.apache.jsp.hello_jsp/servlet-name
  servlet-classorg.apache.jsp.hello_jsp/servlet-class
  /servlet
 
  servlet-mapping
  servlet-nameorg.apache.jsp.date_jsp/servlet-name
  url-pattern/date.jsp/url-pattern
  /servlet-mapping
 
  servlet-mapping
  servlet-nameorg.apache.jsp.hello_jsp/servlet-name
  url-pattern/hello.jsp/url-pattern
  /servlet-mapping
 
  servlet-mapping
  servlet-nameorg.apache.jsp.date2_jsp/servlet-name
  url-pattern/subdir/date2.jsp/url-pattern
  /servlet-mapping
 
  servlet-mapping
  servlet-nameorg.apache.jsp.hello_jsp/servlet-name
  url-pattern/subdir/hello.jsp/url-pattern
  /servlet-mapping
 
  !--
  All session-config, mime-mapping, welcome-file-list, error-page, taglib,
  resource-ref, security-constraint, login-config, security-role,
  env-entry, and ejb-ref elements should follow this fragment.
  --
 
 
  --
  To unsubscribe, e-mail:
 mailto:[EMAIL PROTECTED]
  For additional commands, e-mail:
 mailto:[EMAIL PROTECTED]




 --
 To unsubscribe, e-mail:
 mailto:[EMAIL PROTECTED]
 For additional commands, e-mail:
 mailto:[EMAIL PROTECTED]





--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]