面试中,面试官可能会提出如下问题:
1、什么是springmvc?谈谈你对springmvc的理解?
2、什么是mvc设计模式,使用该模式有什么好处?
3、springmvc有哪些主要的组件?
4、springmvc的优缺点?
抱着这些面试问题,我们通过学习springmvc的相关概念来逐一解答?
1、什么是MV设计模式?
MVC设计模式一般指的是MVC框架,M(model)即数据模型,V(view)即视图层,C(Controller)即控制层。使用MVC的目的在于将M和V上的实现代码分离,使同一个程序可以有不同的表现形式。
M(model):数据模型层,负载数据逻辑的处理和实现数据操作(即在数据库中存取数据)
V(view):视图层,负责格式化数据并将它们展示给用户。包括:数据展示、用户及哦啊胡、数据验证、界面设计等功能。
C(controller):控制层,负责接收并转发请求,对请求进行处理后,指定视图并将响应结果发送给客户端
设计模式:就是日常开发中编写代码的一种好的方法和经验的总结
2、使用MVC设计模式的好处?
1、分层设计:实现系统的各个组件之间解耦,有利于业务系统的可扩展性和可维护性。
2、有利于系统的并行开发,提升开发效率
3、MVC的优缺点?
任何一件事都有利有弊,下面来了解一下MVC的优缺点
优点:
1)、多个视图共享一个模型,大大提高了代码的可重用性
2)、MVC三个模块相互独立,实现送耦合架构
3)、控制器提高了应用程序的灵活性和可配置性
缺点:
1)、增加了系统结构和实现的复杂性
2)、视图对模型数据的低效率访问
注:mvc并不适合小型甚至中型规模的项目,花费大量时间将MVC应用到规模并不是很大的应用程序,通常得不偿失,所以对于MVC设计模式的使用要根据具体的应用场景来决定。
4、什么是springmvc?
springmvc是一个基于java实现了MVC设计模式的请求驱动类型的轻量级web框架,通过将模型、视图、控制器分离,将web层进行职责解耦,将复杂的web应用分成逻辑清晰的几个部分,减少出错,方便组内开发人员之间的配合。
5、springmvc的优点?
1)、与spring框架无缝集成
2)、可以支持各种视图技术,而不仅仅局限于JSP
3)、清晰的角色分配:前端控制器(dispatcherServlet),请求到处理器映射(HandlerMapping),
处理器适配器(HandlerAdapter)、视图解析器(ViewResolver
4)、支持各种请求资源的映射策略
5)、提供大量的控制器接口和实现类,开发者可以使用spring提供的控制器实现类,也可以自己实现控制器接口。
6)、编写接口编程
6、springmvc常用组件?
1)、前端控制器DispatcherServlet
作用:接收请求、响应结果,相当于转发器,有了DispatcherServlet就减少了其它组件之间的耦合度
2)、处理器映射器HandlerMapping
作用:根据请求的URL来查找Handler
3)、处理器适配器HandlerAdapter
注意在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器才可以正确的去执行Handler
4)、处理器Handler(程序员开发Controller等)
作用:接收用户请求,处理业务逻辑。
5)、视图解析器ViewResolver
作用:进行视图的解析,根据视图逻辑名称解析成真正的视图(view)
6)、视图View(程序员开发jsp等)
view是一个接口,它的实现类支持不同的视图类型(如jsp、freenarker、pdf等)