一、Spring3 MVC的优点:
1、Spring3 MVC使用简单,学习成本低。学习难度小于Struts2,Struts2用不上的多余功能太多。呵呵,当然这不是决定因素。
2、Spring3 MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分)
3、Spring3 MVC的灵活是你无法想像的,Spring框架的扩展性有口皆碑,Spring3 MVC当然也不会落后,不会因使用了MVC框架而感到有任何的限制。
二、几个重要的接口和类:
1、DispatcherServlet -- 前置控制器(C)
2、HandlerMapping接口 -- 处理请求的映射(I) HandlerMapping接口的实现类:
1、SimpleUrlHandlerMapping通过配置文件,把一个URL映射到Controller(C)
2、DefaultAnnotationHandlerMapping通过注解,把一个URL映射到Controller类上(C) 3、HandlerAdapter接口 -- 处理请求的映射(I)
4、AnnotationMethodHandlerAdapter(C)通过注解,把一个URL映射到Controller类的方法上 5、Controller接口 -- 控制器(I)
由于我们使用了@Controller注解,添加了@Controller注解注解的类就可以担任控制器(Action)的职责,所以我们并没有用到这个接口。 6、HandlerInterceptor接口--拦截器(I)
我们需要自己实现这个接口,来完成拦截的工作。 7、ViewResolver接口的实现类:
1、UrlBasedViewResolver类通过配置文件,把一个视图名交给到一个View来处理(C) 2、InternalResourceViewResolver类,比上面的类,加入了JSTL的支持(C) 8、View接口
1、JstlView类:View接口的实现类 9、LocalResolver接口
10、HandlerExceptionResolver接口 --异常处理 1、SimpleMappingExceptionResolver实现类 11、ModelAndView类
三、核心流程图:
四、DispatcherServlet说明:
1)
使用Spring MVC,配置DispatcherServlet是第一步。
DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet。
DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据某某规则分发到目标Controller(我们写的Action)来处理。 “某某规则”:是根据你使用了哪个HandlerMapping接口的实现类的不同而不同。 如: 例子一:
org.springframework.web.servlet.DispatcherServlet
注释:
例子二(常用):
org.springframework.web.servlet.DispatcherServlet