All posts about Struts always describe the MVC Model2, which is a new generation of design patterns. I have a new study, I still can't figure out what is model2, so I downloaded the Struts source code. It turned out between the original view (HTML) and Control (JSP / servlet), adding an ActionSerlvet as a new Control All other actions must be distributed by ActionServlet. A concrete graphic, what is clear, Request http --------------> ActionServlet ----------------> Action - ---------------------> Model. You can also see web.xml, such as the Struts project generated by jbuilder, as follows: < Servlet> Action servlet-name> // action ---> ActionSerlvet org.apache.struts.Action.ActionServlet servlet-class> ... servlet> Action servlet-name> //Action.do--->Action *. do url-pattern> servlet-mapping > Visible, all action1.do, action2.do, action3.do Both maps will be on the ActionServlet, while an actionServlet maintains an actionMap, you can identify different Actions, call the corresponding action of the Execute method. So, Struts really changing the web structure is that the use of a total control ActionServlet manages all behaviors, which determines which activity is truly called. As for its advantages, my understanding is that the previously prepared a large number of servlets have written a large number of Actions. Since the servlet must be written in HTML, and Action can manage by configuration files to a certain extent, the overall structure is flexible. Sex. Struts on developerWorks: http://www-900.ibm.com/developerWorks/cn/java/j-strutscol/.