概念
- 一个基于Java的实现了MVC设计模式的轻量级web框架;
- 通过把Model、View、Controller分离,将web层进行解耦,简化开发。
优点
- 支持各种视图技术
- 灵活、扩展性好
- 易于与spring容器整合
主要组件
组件名称 | 简介 | 是否需要程序员开发 |
---|
DispatcherServlet 前端控制器 | 控制中心,接受请求,响应结果 | |
HandlerMapping 处理器映射器 | 据请求的URL来查找Handler | |
Handler 处理器(后端处理器) | 具体的用户业务 | 是 |
HandlerAdapter 处理器适配器 | 通过HandlerAdapter对处理器进行执行 | |
ViewResolver 视图解析器 | 进行视图的解析,根据视图逻辑名解析成真正的视图(view) | |
View 视图 | 返回给用户的视图,常用的是 jsp | 是 |
执行流程
- 用户发送请求至前端控制器DispatcherServlet;
- DispatcherServlet调用处理器映射器HandlerMapping,请求获取Handler;
- HandlerMapping根据用户url请求查找相匹配的Handler,并返回一个执行链给DispatcherServlet;
- DispatcherServlet请求处理器适配器HandlerAdapter调用相应的处理器Handler进行处理并返回ModelAndView给HandlerAdapter,HandlerAdapter再将其返回给DispatcherServlet;
- DispatcherServlet将ModelAndView传给视图解析器ViewResolver进行解析,返回具体View;
- DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中),后响应给用户。
配置
- web.xml默认保存在WebContent/WEB-INF目录下
- 在初始化xxx DispatcherServlet时,spring将尝试加载位于目录中文件名为xxx-servlet.xml中的内容
- 若不使用默认名称和路径,则在web.xml文件中添加servlet监听器,并自定义该文件的名称与位置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-application.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>