Frank W. Zammetti wrote:
> import java.io.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
> import java.util.*;
> import java.net.*;
> public class TestServlet extends HttpServlet {
>   public void init(ServletConfig config) {
>     try {
>       ServletContext context = config.getServletContext();
>       URL u = context.getResource("/test.fwz");
>       System.out.println(u.getProtocol() + "://" + u.getHost() + ":" +
>       u.getPort() + "/" + context.getServletContextName());
>     } catch (Exception e) {
>       e.printStackTrace();
>     }
>   }
> }
>
> >From my reading of the docs, getResource() should be returning a URL to
> that resource, which does exist (NPE if it didn't) which would have all
> the details needed.  Unfortunately, the only detail that is coming up
> properly is the ServletContextName... I get JNDI for the protocol, -1 for
> the port and I think nothing for the host.  Am I reading the docs wrong,
> should that actually NOT work, as I'm seeing?  Because you can get at the
> ServletContext from a plug-in too, this seemed like the perfect answer. 
>   

Two things jump out at me:

1) It looks like it's container-dependent: "The servlet container must
implement the URL handlers and |URLConnection| objects that are
necessary to access the resource."

2) It's not making a "real" request so the container might short-circuit
the normal request procedure in order to return the resource as
efficiently as possible?

> Unfortunately, it has one minor drawback: it doesn't work :)
>   

Minor quibble.

Dave

Reply via email to