1. Spring MVC是什么

是一个简化web应用开发的框架,将Modle、Controller和View进行分离,把复杂的逻辑拆分开来,方便开发人员配合开发

2. Spring MVC请求的流程

  1. 用户发送请求至前端控制器DispatchServlet
  2. 根据请求的映射从HandleMapping中找到相应的Handle
  3. 通过处理适配器调用Handle(及Controller),获取视图模型
  4. 通过视图解析器获取视图
  5. 将视图进行渲染返回给浏览器
    在这里插入图片描述

注:如果是REST风格的请求,也就是在Controller的方法上加了@ResponseBody的注解,则会跳过视图解析器,而是通过配置的消息转换器将数据转换成相应的格式进行返回

3. Spring MVC与Struts2的区别

  1. Spring MVC的入口是DispatchServlet,而Struts2使用的是Filter,Spring MVC的效率更高
  2. Spring MVC是基于方法开发,请求参数传递给方法的参数,可以为多例和单例,建议单例,而Struts2是基于类来开发,请求参数是通过类的属性,只能设计为多例
  3. Spring MVC的参数是通过参数解析器解析Request请求,返回参数是通过将数据封装成ModleAndView对象,再通过request域传输到页面,Struts2的参数和返回值是通过值栈传递

参考

SpringMVC常见面试题总结(超详细回答)

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐