Re: Finding the name of the included page from the request object

2002-03-17 Thread Alex Muc

Craig,
That works, and is exactly what I'm looking for.
Thanks a bunch.

Alex.

Craig R. McClanahan wrote:

On Sat, 16 Mar 2002, Alex Muc wrote:

Date: Sat, 16 Mar 2002 17:12:02 -0500
From: Alex Muc [EMAIL PROTECTED]
Reply-To: Tomcat Users List [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: Finding the name of the included page from the request object

Hi,

I've got the following setup:

pageA.jsp
  jsp:include page=pageB.jsp
  /jsp:include

pageB.jsp
   @ include file=Header.jsp

Header.jsp
   !-- print out a common page header --

In the Header page, which is STATICALLY, included in pageB, which means
we're really only dealing with pageA and pageB, I want to determine the
name of pageB from the request (or response) object so that I can
customize the page header that I'm displaying.  I hope this makes sense.

I've looked through the mailing list and the javadocs for a method that
will return me the information.  That is I'm looking for some method
which will return pageB.jsp (or something similar) when called from
pageB.jsp and pageA.jsp when called from pageA.jsp but will return
pageB.jsp when called within pageB.jsp regardless of whether it is
invoked directly by the browser or it is included in pageA.jsp.
 Unfortunately all the methods that I've tried all return info about
pageA.jsp, presumably because that is the one that is actually requested
from the client.  I've tried the following methods:
request.getContextPath()
request.getPathInfo()
request.getPathTranslated()
request.getRequestURI()
request.getServletPath()
getServletContext().getRealPath(.)
These methods all return Strings related to pageA, regardless of whether
the methods are called from pageB.jsp which is dynamically included in
pageA.

So, my question is how can I find out the name of the current page being
processed.  If I'm in pageB.jsp it should return pageB.jsp (or
something similar) regardless of whether pageB.jsp is invoked directly
from the client or indirectly through an include in pageA.jsp.


The jsp:include action is implemented in terms of
RequestDispatcher.include() in the servlet API.  If you grab the Servlet
2.3 spec http://java.sun.com/products/servlet/download, and read Section
8.3, you'll see that the container creates some request attributes that
define the request to the included page (pageB in your case) rather than
the including page.  They work for included JSP pages as well.

To make it possible to grab the right path no matter whether a page is
requested directly or included, you'd use logic like this:

  String servletPath =
   request.getAttribute(javax.servlet.include.servlet_path);
  if (servletPath == null) {
servletPath = request.getServletPath();
  }

Thank you for your help.
Alex.


Craig


--
To unsubscribe:   mailto:[EMAIL PROTECTED]
For additional commands: mailto:[EMAIL PROTECTED]
Troubles with the list: mailto:[EMAIL PROTECTED]





--
To unsubscribe:   mailto:[EMAIL PROTECTED]
For additional commands: mailto:[EMAIL PROTECTED]
Troubles with the list: mailto:[EMAIL PROTECTED]




Finding the name of the included page from the request object

2002-03-16 Thread Alex Muc

Hi,

I've got the following setup:

pageA.jsp
  jsp:include page=pageB.jsp
  /jsp:include

pageB.jsp
   @ include file=Header.jsp

Header.jsp
   !-- print out a common page header --

In the Header page, which is STATICALLY, included in pageB, which means 
we're really only dealing with pageA and pageB, I want to determine the 
name of pageB from the request (or response) object so that I can 
customize the page header that I'm displaying.  I hope this makes sense.

I've looked through the mailing list and the javadocs for a method that 
will return me the information.  That is I'm looking for some method 
which will return pageB.jsp (or something similar) when called from 
pageB.jsp and pageA.jsp when called from pageA.jsp but will return 
pageB.jsp when called within pageB.jsp regardless of whether it is 
invoked directly by the browser or it is included in pageA.jsp. 
 Unfortunately all the methods that I've tried all return info about 
pageA.jsp, presumably because that is the one that is actually requested 
from the client.  I've tried the following methods:
request.getContextPath()
request.getPathInfo()
request.getPathTranslated()
request.getRequestURI()
request.getServletPath()
getServletContext().getRealPath(.)
These methods all return Strings related to pageA, regardless of whether 
the methods are called from pageB.jsp which is dynamically included in 
pageA.

So, my question is how can I find out the name of the current page being 
processed.  If I'm in pageB.jsp it should return pageB.jsp (or 
something similar) regardless of whether pageB.jsp is invoked directly 
from the client or indirectly through an include in pageA.jsp.

Thank you for your help.
Alex.



--
To unsubscribe:   mailto:[EMAIL PROTECTED]
For additional commands: mailto:[EMAIL PROTECTED]
Troubles with the list: mailto:[EMAIL PROTECTED]




Re: Finding the name of the included page from the request object

2002-03-16 Thread Craig R. McClanahan

On Sat, 16 Mar 2002, Alex Muc wrote:

 Date: Sat, 16 Mar 2002 17:12:02 -0500
 From: Alex Muc [EMAIL PROTECTED]
 Reply-To: Tomcat Users List [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Subject: Finding the name of the included page from the request object

 Hi,

 I've got the following setup:

 pageA.jsp
   jsp:include page=pageB.jsp
   /jsp:include

 pageB.jsp
@ include file=Header.jsp

 Header.jsp
!-- print out a common page header --

 In the Header page, which is STATICALLY, included in pageB, which means
 we're really only dealing with pageA and pageB, I want to determine the
 name of pageB from the request (or response) object so that I can
 customize the page header that I'm displaying.  I hope this makes sense.

 I've looked through the mailing list and the javadocs for a method that
 will return me the information.  That is I'm looking for some method
 which will return pageB.jsp (or something similar) when called from
 pageB.jsp and pageA.jsp when called from pageA.jsp but will return
 pageB.jsp when called within pageB.jsp regardless of whether it is
 invoked directly by the browser or it is included in pageA.jsp.
  Unfortunately all the methods that I've tried all return info about
 pageA.jsp, presumably because that is the one that is actually requested
 from the client.  I've tried the following methods:
 request.getContextPath()
 request.getPathInfo()
 request.getPathTranslated()
 request.getRequestURI()
 request.getServletPath()
 getServletContext().getRealPath(.)
 These methods all return Strings related to pageA, regardless of whether
 the methods are called from pageB.jsp which is dynamically included in
 pageA.

 So, my question is how can I find out the name of the current page being
 processed.  If I'm in pageB.jsp it should return pageB.jsp (or
 something similar) regardless of whether pageB.jsp is invoked directly
 from the client or indirectly through an include in pageA.jsp.


The jsp:include action is implemented in terms of
RequestDispatcher.include() in the servlet API.  If you grab the Servlet
2.3 spec http://java.sun.com/products/servlet/download, and read Section
8.3, you'll see that the container creates some request attributes that
define the request to the included page (pageB in your case) rather than
the including page.  They work for included JSP pages as well.

To make it possible to grab the right path no matter whether a page is
requested directly or included, you'd use logic like this:

  String servletPath =
   request.getAttribute(javax.servlet.include.servlet_path);
  if (servletPath == null) {
servletPath = request.getServletPath();
  }

 Thank you for your help.
 Alex.


Craig


--
To unsubscribe:   mailto:[EMAIL PROTECTED]
For additional commands: mailto:[EMAIL PROTECTED]
Troubles with the list: mailto:[EMAIL PROTECTED]