1. Spring MVC是什么
是一个简化web应用开发的框架,将Modle、Controller和View进行分离,把复杂的逻辑拆分开来,方便开发人员配合开发
2. Spring MVC请求的流程
- 用户发送请求至前端控制器DispatchServlet
- 根据请求的映射从HandleMapping中找到相应的Handle
- 通过处理适配器调用Handle(及Controller),获取视图模型
- 通过视图解析器获取视图
- 将视图进行渲染返回给浏览器
注:如果是REST风格的请求,也就是在Controller的方法上加了@ResponseBody的注解,则会跳过视图解析器,而是通过配置的消息转换器将数据转换成相应的格式进行返回
3. Spring MVC与Struts2的区别
- Spring MVC的入口是DispatchServlet,而Struts2使用的是Filter,Spring MVC的效率更高
- Spring MVC是基于方法开发,请求参数传递给方法的参数,可以为多例和单例,建议单例,而Struts2是基于类来开发,请求参数是通过类的属性,只能设计为多例
- Spring MVC的参数是通过参数解析器解析Request请求,返回参数是通过将数据封装成ModleAndView对象,再通过request域传输到页面,Struts2的参数和返回值是通过值栈传递