MVC
MVC是一种架构模式。其核心思想就是业务数据抽取同业务数据呈现相分离。
Model:模型层,业务数据的信息表示,关注支撑业务的信息构成,通常是多个业务实体的组合。
View:视图层,为用户提供UI,重点关注数据的呈现。
Controller:是View和Model之间的沟通桥梁。控制层,调用业务逻辑产生合适的数据(Model),传递数据给视图层用于呈现(View)。
前端控制器:
控制器了解所有的业务细节,负责业务数据的抽取。
视图模板了解所有前端的控制,负责页面的呈现。
前端控制器负责分发调度(1.将请求分发给控制器生成业务数据 2.将业务数据分发给恰当的视图模板生成最终的用户界面)。
SpringMVC基本概念:
DispatcherServlet:是Spring的前端控制器。用户请求通过DispatcherServlet分发,到达Controller层,生成所需要的业务数据Model,再通过DispatcherServlet传递到达View层,完成最终的业务呈现。
Controller:即MVC中的C。
HandlerAdapter:Handler是DispatcherServlet内部生成的一个类,就是Controller的表现形式。相当于DispacherServlet调用Controller的中间过渡对象。而HandlerAdapter就是适配器模式将各种Handler适配成DispacherServlet可使用的Handler。
HandlerInterceptor:拦截器。在需要被拦截对象的两侧加入一些信息。
这个接口包括三个方法:preHandle(),postHandle(),afterCompletion()。通过实现这个接口,可以实现在调用Controller之前、之后、以及最终Model发送到页面或View呈现页面时,添加一些动作。
HandlerMapping:1.告诉DispatcherServlet该请求应该由哪个Controller来响应。2.给DispatcherServlet返回一个HandlerAdapter,包含某个具体的Controller实例,以及这个Controller需要被包裹的HandlerInterceptor。他们会构成一个执行的链条。
HandlerExecutionChain:HandlerMapping返回的包括HandlerAdapter和HandlerInterceptor。他们之间构成了一个执行链条。其执行顺序为:
ModelAndView:DispatcherServlet会将Controller中使用的Model和Map类转换为ModelAndView。因此ModelAndView是Model的具体表现。相当于DispacherServlet调用Model的中间过渡对象。
ViewResolver:视图解析器。告诉DispatcherServlet需要用哪个视图来进行视图的呈现。
View:负责呈现页面。有JSTL,JSP等。