mvc五大组件有:1、DispatcherServlet;2、HandleMapping;3、Controller;4、ModeAndView;5、ViewResolver。DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自己定义。
1、DispatcherServlet
这个控件是SpringMVC 最核心的一个控件,顾名思义其实他就是一个Servlet,是Spring写好的一个 Servlet。DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置spring MVC的名列前茅步。
DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。
2、HandleMapping
控件标明了路径与Controller的对应关系,不同的路径访问不同的Controller。从HandlerMapping接口继承结构体系图中,我们可以发现HandlerMapping家族可以分为两支,一支继承AbstractUrlHandlerMapping,一支继承AbstractHandlerMethodMapping,这两支都继承自AbstractHandlerMapping。其中AbstractUrlHandlerMapping在目前大部分的项目使用中,已经很少使用到
3、Controller
用来处理业务逻辑的Java类。controller早期的作用(典型如spring),一是接受用户请求,二是处理业务逻辑。但是接收请求可以用mapping代替,比如rails中用一个配置文件routes.rb就能实现mapping。业务逻辑也可以交给service,例如:后端只开一个接口,前端一律请求json,后端根据json中的信息来判断,具体交给某个service处理。
Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了RequestMapping 注解。
4、ModeAndView
Mode用来绑定处理后所得的数据,View视图名。ModelAndView中包含了一个model属性和一个view属性,model其实是一个ModelMap类型,它是一个LinkedHashMap的子类,view包含了一些视图信息。ModelAndView以org.springframework.ui.ModelMap的形式来保持模型数据,通过构造方bai法传入的或者通过实例方法添加的模型数据都将添加到这个ModelMap中。至于ModelMap中保持的模型数据将会在视图渲染阶段,由具体的View实现类来获取并使用。
5、ViewResolver
视图解析器明确了视图名与视图对象的关系,是调用demo.jsp还是调用demo.html,以及明确视图的位置。SpringMVC 用于处理视图最重要的两个接口是 ViewResolver 和 View ,ViewResolver 的主要作用是把一个逻辑上的视图名称解析为一个真正的视图(View )。SpringMVC 中用于把 View 对象呈现给客户端的是 View 对象本身,而 ViewResolver 只是把逻辑视图名称解析为对象的View对象。 View 接口的主要作用是用于处理视图,然后返回给客户端
延伸阅读:
什么是MVC框架?
经典MVC模式中,M是指模型,V是视图,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。其中,View的定义比较清晰,就是用户界面。
MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。
文章标题:mvc五大组件有哪些,发布者:小编,转载请注明出处:https://worktile.com/kb/p/35301