To respond to the original question (why use the Apache "Struts" framework), when you have tag libraries allowing you to build pages integrated with
Java beans, sql (and less javascript!): you shouldn't necessarily use Struts. The overhead may not be worthwhile if you are only building a small app (small is relative, but if you have only a half-dozen classes or so to deal with that may be a measure of 'small', and only a few pages). If you have MANY pages, Struts can help organize control flow, which is a big issue. If you don't want to write a large controller yourself, Struts provides that framework