4.1请求处理流程
SpringMVC通过前端控制器(DispartcherServlet)拦截并处理用户请求的
4.2 SpringMVC核心组件
1.DispatcherServlet 前端控制器,总控制器
由SpringMVC提供,无需工程师开发
作用:接受请求,协同各组件工作
2.HandlerMapping 处理器映射
由SpringMVC提供
作用:负责根据用户请求的URL找到对应的Handler
3.HandlerAdapter 处理器适配器
由SpringMVC提供
作用:按照处理器映射器解析的用户请求的调用链,通过适配器模式完成Handler的调用
4.Handler 处理器/控制器
由工程师根据业务的需求进行开发
作用:处理请求
5.ModelAndView 视图模型
作用:用于封装处理器返回的数据以及响应的视图
ModelAndView=Model+View
6.ViewResolver 视图解析器
作用:对ModelAndView进行解析
7.View 视图
作用;完成数据渲染
4.3 处理器映射器
不同的处理器映射器对URL的处理方式也不相同,使用对应的处理器映射器之后我们的前端请求规则也需要发生响应的变化
SpringMVC提供的处理器映射器:
BeanNameUrlHandlerMapping 根据控制器的ID访问控制器
SimpleUrlHandlerMapping 根据控制器配置的URL访问(默认)
配置处理器映射器:
在SpringMVC的配置文件中通过bean标签声明处理器映射器
BeanNameUrlHandlerMapping:
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
SimpleUrlHandlerMapping:
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/aaa">bookContoller</prop> //请求aaa就可以到bookContoller
</props>
</property>
4.4视图解析器
SpringMVC提供了多个视图解析器:
UrlBasedViewResolver
InternalResourceViewResolver
UrlBasedViewResolver需要依赖jstl
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/"></property> //返回值的前缀
<property name="suffix" value=".jsp"></property> //返回值的后缀
</bean>