Why can't you just do something like onCommand="MyServlet?a=b"? 

If the page is loaded from "MyApplication" webapps, any relative URL
should resolve to this webapp. In HTML, for example, if page1.html is
loaded from "/MyApp", any relative URL that page1.html uses would be
resolved to "/MyApp/relativeURL". I would we preserve this pattern. 

I do see one potential problem: If a page is loaded from "/MyApp/Pages",
then a relative URL such as "MyServlet" should be resolved to
"/MyApp/Pages/MyServlet" - which is clearly a problem. However, in this
case, the developer should reference to "MyServlet" via "../MyServlet"
instead. 

So my recommendation is to keep track of the URL of the page, and any
relative URL in this page should be resolved relatively to the page URL;
unless the URL is hardcoded to something else. 


> -----Original Message-----
> From: James Margaris [mailto:[EMAIL PROTECTED]
> Sent: Monday, November 06, 2006 3:55 AM
> To: [email protected]
> Subject: URL resolution
> 
> Here is an interesting problem I am running into.
> 
> Say I have a servlet called "MyServlet". I am running xap out of a web
> application called "MyApplication".
> 
> From code I want to send something to "MyServlet". What URL do I use?
> 
> In an html browser "/" is typically relative to the server URL. So if
I do
> "/MyServlet" it will not resolve to
> http://localhost/MyApplication/MyServlet but instead
> http://localhost/MyServlet, which is not correct in this case.
> 
> I could make the request to /MyApplication/MyServlet, but that means
my
> client-side code needs to know the name of the webapp.
> 
> Alternately we could expose the name of the webapp context and my code
> would append "MyServlet" to that.
> 
> From a J2EE web-application perspective typically you are not hitting
> pages on the server outside of the webapp, although it certainly is
> possible.
> 
> Note that this is an even more annoying problem if you have XML code
like:
> 
> onCommand="/MyServlet?a=b"
> 
> In this case if I want to hit MyApplication/MyServlet I really have to
> hardcode that in the XML.
> 
> Possible solutions:
> 
> 1: Leave it alone, they can hardcode in XML and append their URL to
the
> context path in code.
> 
> 2: Have at least optionally a flag or something like that that maps
"/" to
> the root of the web application instead of the server root.
> 
> Ideas?
> 
> James Margaris

Reply via email to