1.Spring MVC主要组件
DispatcherServlet:主控制器
负责接收请求,根据请求分发给业务组件处理;处理完毕调用视图组件响应
Controller:业务控制器
负责调用DAO或Service等业务组件
ModelAndView:模型和视图组件
负责封装模型数据和视图名信息
HandlerMapping:处理器映射组件
负责维护请求URI和Controller处理映射信息。
ViewResolver:视图解析器
负责根据ModelAndView信息,调用视图组件显示数据响应
====SpringMVC和Struts2对应=====
DispatcherSerlvet-->Filter
Controller-->Action
ViewResolver-->Result
HanlderMapping-->ActionMapping
ModelAndView Spring特有
2.Spring MVC主要流程
a.客户浏览器发出HTTP请求,请求首先进入DispatcherServlet主控制器
b.主控制器调用HanlderMapping,根据请求和Controller映射信息,调用Controller组件处理请求
c.执行Controller中约定处理方法,在该方法中可以调用DAO组件,处理完毕后返回一个ModelAndView结果
d.主控制器调用ViewResolver解析ModelAndView,定位JSP视图生成响应结果
e.将JSP响应结果输出
三、SpringMVC常用注解
@Controller
负责注册一个bean 到spring 上下文中
@RequestMapping
注解为控制器指定可以处理哪些 URL 请求
@RequestBody
该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上 ,再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上
@ResponseBody
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区
@ModelAttribute
在方法定义上使用 @ModelAttribute 注解:Spring MVC 在调用目标处理方法前,会先逐个调用在方法级上标注了@ModelAttribute 的方法
在方法的入参前使用 @ModelAttribute 注解:可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数 –绑定到对象中,再传入入参将方法入参对象添加到模型中
@RequestParam
在处理方法入参处使用 @RequestParam 可以把请求参 数传递给请求方法
@PathVariable
绑定 URL 占位符到入参
@ExceptionHandler
注解到方法上,出现异常时会执行该方法
@ControllerAdvice
使一个Contoller成为全局的异常处理类,类中用@ExceptionHandler方法注解的方法可以处理所有Controller发生的异常
3.SpringMVC详细运行流程图
Spring Web MVC核心架构图,
参考:http://www.admin10000.com/document/6436.html