Two servlet filters - one to do 95% of the work, the second to cleanup any
thread locals.

Don


On Thu, Apr 25, 2013 at 1:06 AM, Lukasz Lenart <lukaszlen...@apache.org>wrote:

> Thanks MrDon :-)
>
> What you mean by "two filters"?
>
>
> Regards
> --
> Łukasz
> + 48 606 323 122 http://www.lenart.org.pl/
>
> 2013/4/24 Don Brown <donald.br...@gmail.com>:
> > This all goes way back to the days of WebWork and how much they loved
> > statics.  WebWork basically used static singletons for everything,
> causing
> > a) a really complicated startup order and b) the ability to only run one
> > instance of the framework.  In those days (and perhaps still?) there
> wasn't
> > just one filter but at least two to allow proper thread-local cleanup,
> > because what wasn't accessed statically was accessed statically using
> thread
> > locals as the means (ActionContext.getContext() for example).
> >
> > Therefore, with two filters that contain state that needs to be accessed
> > statically, we were limited to threadlocals to track that state.  When I
> was
> > working on it, I got it to the point that most statics were gone and we
> had
> > a decent injection system to avoid all the static accessors, but they
> were
> > still there in case you needed them.  I don't know what the code is like
> > now, but it sounds like perhaps it still hasn't completely gotten away
> from
> > statics and threadlocals.
> >
> > As a side note, back then (2008?) we did some profiling and found that
> > actually all the thread locals were eating up a bunch of time in the
> > request, so it is more than just a general "icky" sense that should drive
> > their removal.
> >
> > Again, my knowledge is pretty dated, but that's where things came from.
> >
> > Don
> >
> >
> > On Tue, Apr 23, 2013 at 7:40 PM, ppm10103 <ppm10...@163.com> wrote:
> >>
> >>
> >> At 2013-04-24 03:44:22,"Lukasz Lenart" <lukaszlen...@apache.org> wrote:
> >>
> >> >2013/4/23 ppm10103 <ppm10...@163.com>:
> >> >> The Dispatcher  will have only one instance,
> >> >> it bind to ThreadLocal  is for what?
> >> >
> >> >For thread safety, then you can access Dispatcher from a thread
> >> >without synchronisation. That's my opinion :-)
> >> >
> >> >
> >> >Regards
> >> >--
> >> >Łukasz
> >> >+ 48 606 323 122 http://www.lenart.org.pl/
> >> >
> >> >---------------------------------------------------------------------
> >> >To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
> >> >For additional commands, e-mail: dev-h...@struts.apache.org
> >> >
> >>
> >> Thanks for your help,but I look into the sourcecode ,the Dispatcher will
> >> only be one instance,
> >> so even put it in the ThreadLocal,every thead alse access the same
> >> Dispatcher  instance,
> >> so I think it's not for thread safe,so I still want to konw it's for
> what?
> >
> >
>

Reply via email to