I'm trying to intercept a jsp:include so that I can adjust the requested file (ie: "/include.html") to a different directory/file (ie: "/otherdir/otherfile.html"). If there is an easy way (Filter, Valve, Listener, ...) just let me know. NOTE: I've already created and installed a request filter in my web.xml to filter the initial request, but this doesn't get invoked for jsp:include references.

Current idea:
I want to change the "javax.servlet.include.servlet_path" request attribute so the DefaultServlet.getRelativePath() finds the new file. I can see that the ApplicationDispatcher fires off a list of InstanceEvent's before the DefaultServlet.service() is called.

After days of exploration, I can't figure out how to add to get my InstanceEvent into the InstanceSupport's list (ie: cause a call to the support.addInstanceListener). Is there a configuration that will add my class to my application Context?

Thanks,
-AAron ([EMAIL PROTECTED])

---------Code snippits---------
NOTE: Globals.SERVLET_PATH_ATTR = "javax.servlet.include.servlet_path"

org/apache/catalina/core/ApplicationDispatcher.java:

private void doInclude(ServletRequest request, ServletResponse response) throws ServletException, IOException
{
...
wrequest.setAttribute(Globals.SERVLET_PATH_ATTR, servletPath);
...
invoke(outerRequest, outerResponse);
...
}

...

private void invoke(ServletRequest request, ServletResponse response)
throws IOException, ServletException {

support.fireInstanceEvent(InstanceEvent.BEFORE_DISPATCH_EVENT, servlet, request, response);

servlet.service(request, response);

support.fireInstanceEvent(InstanceEvent.AFTER_DISPATCH_EVENT, servlet, request, response);


_________________________________________________________________
MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*. http://join.msn.com/?page=features/virus


--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to