Struts is a set of cooperating classes, servlets, and JSP tags that make up a reusable MVC 2 design.
JavaBeans components for managing application state and behavior.
Event-driven development (via listeners as in traditional GUI development).
Pages that represent MVC-style views; pages reference view roots via the JSF component tree.