Hi, Thanks Bryan, this looks like a hack:) What do you think if I override the Engine's method:
public void service(WebRequest request, WebResponse response) throws IOException { super.service(request, response); // insert code here } Is this a bad approach? --- Bryan Lewis <[EMAIL PROTECTED]> wrote: > It sounds like a servlet listener method could work > for you. Or a > servlet filter as in the previous suggestion. Both > would give you a > hook into the end-of-request, and you can get to the > Visit via the > session. Here's a listener approach. > > > public class EventListener implements > ServletRequestListener > { > public void > requestInitialized(ServletRequestEvent sre) { > // This method might not need to do > anything. > } > > public void requestDestroyed(ServletRequestEvent > sre) > { > // Call a static method in your > thread-storage class to get your > data. > > // The slightly messy part is getting the > Visit from the session. > HttpSession session = > sre.getServletRequest().getSession(false); > String visitKey = "state:" + appName + > ":visit"; > Visit visit = (Visit) > session.getAttribute(visitKey); > } > } > > In your web.xml: > > <listener> > > <listener-class>your.package.EventListener</listener-class> > </listener> > > > Dobrin Ivanov wrote: > > I have designed some small API in order to provide > the > > session persistance of the presentation layer > > (Tapestry - Visit object/HttpSession) to the model > > layer (in order to be able to cache some session > > related stuff without being aware of how the above > > layer is doing it). So the data is attached to the > > thread and at the end of the request cycle I want > to > > save it into the Visit object. > > > > --- Martin Strand <[EMAIL PROTECTED]> wrote: > > > > > >> Exactly what do you need this for? > >> If you don't need any Tapestry logic, there might > be > >> other ways to do it - > >> like a servlet filter or a threaded service that > >> implements Discardable. > >> > >> On Tue, 19 Sep 2006 21:58:20 +0200, Jesse Kuhnert > >> <[EMAIL PROTECTED]> > >> wrote: > >> > >> > >>> It might not be super fun to learn, but I think > >>> > >> the "tapestry" way of > >> > >>> doing > >>> this would be to contribute something to the > >>> > >> WebRequestServicerPipeline > >> > >>> so > >>> that you know definitively when the cycle ends > >>> > >> regardless of what > >> > >>> services/engines are involved.. > >>> > >>> > >>> > > > http://tapestry.apache.org/tapestry4/tapestry/hivedocs/config/tapestry.request.WebRequestServicerPipeline.html > > > >>> On 9/19/06, Dobrin Ivanov > >>> > >> <[EMAIL PROTECTED]> wrote: > >> > >>>> Hi, > >>>> > >>>> I want some advise of which is the best way to > >>>> > >> catch > >> > >>>> the end of the request cycly. I have tried it > >>>> > >> using a > >> > >>>> PageDetachListener, but the problem is that > >>>> > >> sometimes > >> > >>>> there is more than one page involved into the > >>>> > >> request > >> > >>>> cycle and then I get more than one invocation > on > >>>> > >> the > >> > >>>> pageDetached(...). > >>>> So I'm wondering if overriding the Engine's > >>>> service(...) method is the best place? > >>>> > >>>> Thanks and best regards, > >>>> Dobrin > >>>> > >> > > > --------------------------------------------------------------------- > > > >> To unsubscribe, e-mail: > >> [EMAIL PROTECTED] > >> For additional commands, e-mail: > >> [EMAIL PROTECTED] > >> > >> > >> > > > > > > __________________________________________________ > > Do You Yahoo!? > > Tired of spam? Yahoo! Mail has the best spam > protection around > > http://mail.yahoo.com > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: > [EMAIL PROTECTED] > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]