1、MVC设计模式(这里讲的是b/s情况下的模式)
2、springMVC框架与spring的关系
springMVC只是spring框架的一个模块;如下图是spring整个框架的内容:
3、springMVC的框架结构原理
1、 用户发起请求,请求到DispatcherServlet前端控制器
DispatcherServlet(中央调度),负责request和response,负责调用处理器映射器查找Handler,负责调用处理器适配器执行Handler,有了前端控制器降低了各各组件之间的耦合性,系统扩展性提高。
2、 DispatcherServlet前端控制器请求处理器映射器HandlerMapping查找Handler
根据用户请求的url,根据一定的规则去查找(比如:xml配置,注解)
3、 HandlerMapping处理器映射器将Handler返回给前端控制器
4、 DispatcherServlet前端控制器调用HandlerAdapter处理器适配器执行Handler
程序员编写的Handler是按照适配器要求的规则去执行Handler
5、 HandlerAdapter处理器适配器执行Handler
适配器按照一定规则去执行Handler
6、 Handler执行完成,返回ModelAndView
ModelAndView是springmvc的封装对象,将model和view封装在一起。
7、 HandlerAdapter处理器适配器将ModelAndView返回给前端 控制器
8、 前端控制器调用视图解析器,进行视图解析,解析完成给前端控制器返回View
View是springmvc的封装对象,是一个接口,实现类包括jspview,pdfview。。。。
9、 前端控制器调用view进行视图渲染
将模型数据填充到view(将model数据填充到request)响应给用户
10、前端控制器响应给用户。
4、这里详细的说明一下springmvc平常要了解的(开发是不常用的,一般都是用注解)三大组件:1、处理器映射器常用的两个是(在注解开发中就是指的requestMapping注解):
<!-- 处理器映射器 根据url匹配bean的name 处理器映射器实现了HandlerMapping接口 -->
<bean
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<!-- 简单url映射的处理器映射器 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello1.action">hello_controller</prop>
<prop key="/hello2.action">hello_controller</prop>
<prop key="/hello3.action">hello_controller3</prop>
</props>
</property>
</bean>
对应的controller类的配置:
<!-- 配置action -->
<bean id="hello_controller" name="/helloworld.action" class="cn.itcast.springmvc.Hello" />
<!-- 配置action -->
<bean id="hello_controller3" class="cn.itcast.springmvc.Hello1" />
根据处理器映射器就可以找到对应的handler(函数)