I added this to the wiki [1] and would like this to have a general discussion.
S1 and S2 have different infrastructure to process a request/response. They overlap to some degree in concept but each has a strength and weakness: S2 is superior by allowing the user to configure processing with "interceptors", but it's weakness is that not all processing is done by interceptors -- there is stock system functionality (for lack of a better word) that can't be easily overridden. On the other hand, S1 is superior in allowing the user to configure the entire processing chain with its "chain filter", but it's weakness is that it lacks all the fine functionality of S2. I would like to see S3 combine both approaches. I want to the interceptors of S2 to be expanded so all the stock system functionality is extracted into interceptors (with both a request stack and a response stack?). This will allow the entire request/response processing chain to be customized without having to dig into non-interceptor code (in theory). For example, there is no easy way in S2 to customize which action will be selected -- or which method on the action will be invoked. There is no "action select" interceptor. There is no "method select" interceptor.... You get the point. [1] https://cwiki.apache.org/confluence/display/WW/Struts+Next Cheers, Paul