MVC模式:
(1)模型(Model):表示系统的业务逻辑,包括数据和业务上的规则、操作。在MVC模式中,模型是要实现系统的核心功能,为视图提供数据,供其他部件调用,对系统的功能起到封装的作用,以提高程序代码的可复用程度。
(2)视图(View):是系统的外观表现,是系统与用户交互的界面。在视图中并不进行业务处理,知识简单的显示和向模型或控制器提交数据、发送处理请求,在得到处理结果后显示出来,这样讲显示与处理这两种类型的功能区别开来,使程序代码具有良好的层次性和可复用性,各自专注于所擅长的功能。
(3)控制器(Controller):提供对系统处理过程的控制,对用户的输入做出响应,创建并设置模型中的属性值,对输入的数据做出校验,根据客户端提出的请求,选择合适的模型来处理业务逻辑,再将数据返回给视图。可见,控制器就相当于一个调度中心和数据处理的中转站。
struts2:
1.客户端初始化一个指向Servlet容器(例如Tomcat)的请求,这个请求经过一系列的过滤器(Filter),接着FilterDispacher被调用,FilterDispacher询问ActionMapper来决定这个请求是否需要调用某个Action。其中ActionMapper在web应用启动时根据配置信息加载生成。
2.如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy,ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类,ActionProxy创建一个ActionInvocation的实例。ActionInvocation实例使用命名模式来调用,在Action的过程前后,涉及相关拦截器(Intercepter)的调用。
3.一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action 链)一个需要被表示的JSP。在表示的过程中可以使用Struts 2 框架中的标签。