• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 202
  • Last Modified:

Getting the path to the current page...

What is the "correct" means by which to determine the path the current page; that is to say the page which was requested? Thanks,

Jack D. Bates
1 Solution
I'm not totally clear on what results you're wanting, but there are a number of possibities along these lines.

ServletContext.getRealPath(java.lang.String path) sould give you the file system path to a requested file.

HttpServletRequest.getRequestURI() would give you a context-relative path (for http://www.ste.com/dir/page.jsp would give you /dir/page.jsp)

check out http://java.sun.com/j2ee/sdk_1.3/techdocs/api/index.html for more possibilties.

try this  
If you want to know the URL that is in the browser.. you need JavaScript.  The Servlet will only know the path of the servlet on the system.

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

cheekyci>The Servlet will only know the path of the servlet on the system.
I am confused I thought he wanted the path of the request.
          Returns the part of this request's URL from the protocol name up to the query string in the first line of the HTTP request.
Servlet only knows its path on the system.

For example a servlet doesn't know that if it was a part of a forward, include or a direct request.

It just knows.. it was called and its path.

getRequestedURI() will tell you the requested URI but not the actual URL typed by the user.


I was assuming that the page was a JSP.  
So locally I used  
and the output was  
when I used  
the output was  
remember JSPs are converted to servlets.. so you can still forward to them and include them.

But, the servlet that the JSP generated, doesn't matter here. We are just  
>Getting the path to the current page...  
that was my question.. do they want the path to the servlet or the location the user called.

for example if the user types in.


but test.jsp is including test2.jsp

and test2.jsp is including include.jsp

How do you know what file is really calling include.jsp

the URI will say test.jsp when in actuality it is test2.jsp

so it depends on the scenario.. does the question asker here want the calling servlet or the actual URI.

You can't get the calling page.

sometimes the URI will not match what the user typed in.. in the scenario of frames.

if I have a page called index.htm that has test.jsp in the one of its frames.. what will the URI be?

It will be test.jsp but in reality the user has index.htm loaded right?

Just some scenarios that I have run into :-)

> if I have a page called index.htm that has test.jsp
> in the one of its frames.. what will the URI be?

> It will be test.jsp but in reality the user has
> index.htm loaded right?

Yes, but ... in this case, one of the components
of index.htm (i.e., test.jsp) is being loaded
via a separate HTTP request.  This is basically
the same as the URL for an image in a page.  The
user never sees the URL, but the request for the
image is separate and doesn't have much to do with
the original page (except as a referrer).

So this particular case seems to me to be the
correct behavior, and separate from the question
of redirects/includes _within_ the server
processing of the request.

  - ch
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now