一概念:
springMVC是spring框架的一个模块,springMvc比 struts2更加高效,
spring mvc采用松散耦合可拔插结构比其他mvc框架更具扩展性
二优点:
1、Spring MVC的学习难度小于Struts2,Struts2用不上的多余功能太多。这不是决定因素。
2、Spring MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分)
3、Spring MVC的灵活是你无法想像的,Spring的扩展性有口皆碑,Spring3 MVC当然也不会落后,不会因使用了MVC框架而感到有任何的限制。
三工作原理:1.核心类与接口:
DispatcherServlet -- 前置控制器
HandlerMapping接口 -- 处理请求的映射
HandlerMapping接口的实现类:
SimpleUrlHandlerMapping 通过配置文件,把一个URL映射到Controller
DefaultAnnotationHandlerMapping 通过注解,把一个URL映射到Controller类上
HandlerAdapter接口 -- 处理请求的映射
AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上
Controller接口 -- 控制器
由于我们使用了@Controller注解,添加了@Controller注解注解的类就可以担任控制器(Action)的职责,所以我们并没有用到这个接口
HandlerInterceptor 接口--拦截器,我们自己实现这个接口,来完成拦截的器的工作。
ViewResolver接口的实现类
UrlBasedViewResolver类 通过配置文件,把一个视图名交给到一个View来处理
InternalResourceViewResolver类,比上面的类,加入了JSTL的支持
View接口
JstlView类
LocalResolver接口
HandlerExceptionResolver接口 --异常处理
SimpleMappingExceptionResolver实现类
ModelAndView类 2.SpringMVC的流程图:
2.文字通过流程图进行流程描述(十全十美法则):
1. 用户发送请求给Tomcat,tomcat调用前端控制器DispatcherServlet,
2.通过handleMapping接口,去处理请求映射,
3.handleMapping接口,找相对应的Controller,有两种情况【4和5】
4.没有,就不执行,
5.有,就执行,
6.执行完毕后,有两种情况【7和8】
7.返回ModelAndView对象,里面包含视图对象信息,
8.返回字符串,通过ViewResolver接口的实现类,将字符串转化成视图对象,
9.把视图数据,发送给前端控制器Dispatcher,
10.最后响应给客户。
后续更新中。。。。。。。。