If you are not using WARs and using a folder for your web application then 
try :-

         ServletContext tContext = request.getServletContext();

         tContext.getRealPath("/");

Not sure if it works always but it works  and I guess most servlet engines 
also do function and retunr the docbase property this way.

Anand

At 03:00 PM 9/5/01 -0700, you wrote:


>On Wed, 5 Sep 2001, Rick Mann wrote:
>
> > Date: Wed, 05 Sep 2001 14:38:07 -0700
> > From: Rick Mann <[EMAIL PROTECTED]>
> > To: tomcat user jakarta.apache.org <[EMAIL PROTECTED]>,
> >      Craig R. McClanahan <[EMAIL PROTECTED]>
> > Subject: Re: Is there a way to get the "docBase" property from within a
> >     servlet?
> >
> > on 9/1/01 9:48 PM, Craig R. McClanahan at [EMAIL PROTECTED] wrote:
> >
> > >> Is there a Servlet spec-compliant way to get the webapp's 
> directory's path
> > >> programmatically, from within a servlet?
> > >
> > > No.
> > >
> > >> Something like calling
> > >> ServletConfig.getInitParameter("docBase"), but something that's 
> standard,
> > >> and that does not require me to specify the path explicitly in a
> > >> configuration file?
> > >>
> > >
> > > You are starting from an incorect assumption, that there *is* such a 
> thing
> > > as a portable "directory path" to a web application.  It is entirely 
> legal
> > > for a servlet container to run a web application directly from a WAR file
> > > (in which case there is no expanded directory), or by storing its static
> > > resources in some other sort of structure (such as being BLOB objects 
> in a
> > > database).
> >
> > Okay. I get that. How does one access a resource, then, whether it's a file
> > in a directory or a file in a WAR file? For example, we have properties
> > files that specify certain things for our web app. Currently, I provide a
> > full path, from root, to this file as an init param to a servlet that gets
> > loaded at context startup.
> >
> > I'd like to be able to refer to this file relative to the web app's
> > directory (or within the web app's) .WAR file. Can you tell me how I'd go
> > about doing this, or what concepts to search for in the documentation to
> > answer this question?
> >
>
>The API calls for this are ServletContext.getResource() and
>ServletContext.getResourcesAsStream().  The path you specify is context
>relative, and must start with a slash ("/") character.  Details are in the
>servlet specification, available at:
>
>   http://java.sun.com/products/servlet/download.html
>
>For example, let's assume you wanted to parse the web app deployment
>descriptor for your application.  You can access it like this:
>
>   InputStream is =
>     getServletContext().getResourceAsStream("/WEB-INF/web.xml");
>
>The /WEB-INF directory is a good place to put resource files like this,
>because the servlet container will refuse to serve them in response to a
>direct request from a client.  Plus, this call will work no matter how
>your servlet container deploys your application (in a directory, in a WAR
>file, or whatever).  It also doesn't matter what context path your app
>ends up with, because the path is only relative to the context.
>
>In Servlet 2.3 (i.e. Tomcat 4.0), a new call was added that acts like the
>list() method of the java.io.File class.  For instance, to see the names
>of all the resources in the "/WEB-INF" directory, you can say:
>
>   Set paths =
>    getServletContext().getResourcePaths("/WEB-INF");
>
>and process all of them.  Tomcat 4 uses this, for example, to do directory
>listings when there is no welcome file in the selected directory.
>
>
> > As always, thanks for your help,
> >
> > ------------------------------------------------------------
> > Roderick Mann               rmann @ latencyzero.com.sansspam
> >
> >
> >
>
>Craig


Reply via email to