Spring MVC即是Spring Web MVC,是Spring提供的7个核心部分之一。
Spring MVC框架是基于Servlet的框架,没有额外的封装开销,执行速度相对较快,每次响应时才生成对应的Servlet,生命周期开始,调用结束后,生命周期结束。(Struts2是基于拦截器的,在应用启动时拦截器的生命周期就开始了,并一直持续到应用关闭。Struts1是基于Servlet的)
Spring MVC的核心分发器是DispatcherServlet,在Web.xml中配置拦截分发处理所有请求。
Spring MVC的请求是资源目录的形式,不是XX.do等形式,在Controller中通过@requestMapping进行匹配,可到方法级。
如:
<strong><span style="font-size:12px;color:#990000;">@Controller
@RequestMapping
public class UserController {
@RequestMapping("/login")
public ModelAndView login(String name, String password) {
// write your logic here
return new ModelAndView("success");
}
}
</span></strong>
SpringMVC应用程序的最基本要素:
入口程序 —— DispatcherServlet
核心配置 —— [servlet-name]-servlet.xml
控制逻辑 —— UserController
SpringMVC所提出的方案是:
将整个处理流程规范化,并把每一个处理步骤分派到不同的组件中进行处理
处理流程规范化:
步骤1 —— 对Http请求进行初步处理,查找与之对应的Controller处理类(方法)
步骤2 —— 调用相应的Controller处理类(方法)完成业务逻辑
步骤3 —— 对Controller处理类(方法)调用时可能发生的异常进行处理
步骤4 —— 根据Controller处理类(方法)的调用结果,进行Http响应处理
程序化:
步骤1 —— HandlerMapping
步骤2 —— HandlerAdapter
步骤3 —— HandlerExceptionResolver
步骤4 —— ViewResolver
由DispatcherServlet将这些组件流程串联在一起。
引用downpour的话:“SpringMVC就是通过DispatcherServlet将一堆组件串联起来的Web框架。”
-------------------------------------------------------------------------------------------------------------------------
参考:
http://www.2cto.com/kf/201410/345641.html
http://downpour.iteye.com/blog/1330596
http://jinnianshilongnian.iteye.com/blog/1705701