大致步骤 1、当客户端发送一个HTTP请求时,根据web.xml中的配置,查看是否匹配dispatcherServlet路径,匹配的话,dispatcherServlet进行处理,2、根据请求的信息(url路径,Http请求方法,参数,cookie等)和HandlerMapping得配置找到相应的Handle进行处理。可将HandlerMapping看成是路由器,Hander看成是主机。3、当dispatcherServlet得到相应的handler,使用handlerAdapter对Handler进行封装,在通过统一的适配器(HandlerAdapter)调用真正的Handler. 4、HandlerAdapter通过一些处理,得到一个ModelAndView(包含逻辑试图名和模型数据信息)对象给dispatcherServlet。5、dispatcherServlet使用ViewResolver完成逻辑视图名到真实视图对象 的解析工作。6、得到真实的视图对象View后,dispatcherServlet就使用这个View对象对ModelAndView中的模型数据进行视图渲染。7、最终客户端得到的相应请求可能是一个普通的html,也可能是XML或者Json,或图片,PDF等。
具体介绍 1、(控制)RequestMapping +其他的处理方法签名。 2、处理模型数据。1.1 ModelAndView. .1.2@ModelAttribute ,方法入参标注该注解后,入参的对象就会放到数据模型中。如果是在方法级上标注,则在调用目标方法前,会将这些方法的返回值添加到模型中。1.3 Map及Model 处理方法返回时,Map中的数据 会自动添加到模型中。1.4@SessionAttributes 共享session.
处理方法的数据转换 SpringMVC框架将ServletRequest对象及处理方法的入参对象实例传递给DataBinder,DataBinder调用装配在SpringWeb上下文中的ConversionService组件进行数据类型转换、数据格式化的工作,将ServletRequest中的消息填充到入参对象中。然后再调用Validator组件对已经绑定了请求消息入参对象进行合法性校验,并最终生成绑定数据结果BindResult对象。SpringMVC抽取BindResult中的入参对象给处理放方法的相应入参。