MVC是一种设计模式,遵循 模型(Model),视图(View) 和 控制器(Controller)的架构设计。 MVC的优点很明显: 应用层次分明,职责分明,使得系统的耦合性降低,并有利于系统的维护。
Spring MVC是一个基于Spring框架的轻量级的MVC Web应用框架。
优点:
缺点:
DispatcherServlet是Spring MVC的核心, 可以说SpringMVC就是这个DispatcherServlet。 它是一个Servlet,负责拦截所有的请求,并以调用各种组件来对请求进行分发并处理。
MultipartResolver: 核心组件之一,处理文件上传请求。MultipartResolver负责判断普通请求是否为文件上传请求, 并将普通请求(HttpServletRequest)解析为文件上传请求(MultipartHttpServletRequest)。
LocalResolver: 区域解析器。它主要被用于国际化的资源方面的解析。
ThemeResolver: 主题资源解析器。SpringMVC允许用户提供不同主题,主题就是一系列资源的集合使用这些主题可以提高用户体验。
ViewResolver: 核心组件之一,视图解析器。在Handler执行完请求后,ViewResolver将ModelAndView解析成物理视图, 并对物理视图进行model渲染。
HandlerMapping: 核心组件之一,请求处理器。根据用户的请求来匹配对应的Handler。
HandlerAdapter: 核心组件之一,Handler适配器。使用Handler处理请求,并返回处理后的视图(ModelAndView)。
HandlerExceptionResolver: 核心组件之一,异常处理解析器。在Handler执行请求的过程中可能出现异常, HandlerExceptionResolver就负责处理Handler执行请求过程中的异常。
RequestToViewNameTranslator: 核心组件之一,请求到视图的转换器。根据Request设置最终的视图名,当Handler执行完请求后,它会将Request解析成视图名。
FlashMapManager: 核心组件之一,在请求进行重定向时,FlashMapManager用于保存请求中的参数。
用户发出的请求被DispatcherServlet拦截。
DispatcherServlet使用HandlerMapping根据请求匹配到相应的Handler。Handler实际上是一个(HandlerMethod)。
DispatcherServlet根据Handler适配合适的HandlerAdapter。
HandlerAdapter使用Handler执行请求,并返回ModelAndView。
使用RequestToViewNameTranslator,HandlerExceptionResolver和ViewResolver等解析器, 解析并渲染ModelAndView,并处理相关异常信息。
渲染后的结果反馈给用户。
HandlerInterceptor: Spring MVC拦截器是Spring MVC提供的对用户请求的目标资源做出拦截扩展的处理器。 它允许在目标方法执行前后以及View渲染后做出处理。
Servlet Filter: Filter是Servlet提供的过滤器,它会在目标方法执行前后做出拦截处理。
要说Servlet Filter和HandlerInterceptor有啥区别,
个人认为除了它们提供的拦截时机不同,目的都是相同的,没啥区别。
@Component 声明一个类为IOC容器的组件,会被IOC容器管理。 而@Controller,@Service和@Repository则拥有更细分的语义。
@Controller通常用于Web应用,被@Controller注解的类,应该作为一个处理请求的控制器。
@Service则是声明一个类为Service类,处理业务逻辑。
被@Repository注解的类,应该被用于处理与数据库交互和持久化相关的功能。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。