SpringMVC学习笔记

SpringMVC执行流程

SpringMVC学习笔记_第1张图片

架构流程 

SpringMVC学习笔记_第2张图片

 

  1. 用户发送请求至前端控制器DispatcherServlet
  2. DispatcherServlet收到请求调用HandlerMapping处理器映射器
  3. 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet
  4. DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
  5. 执行处理器(Controller,也叫后端控制器)
  6. Controller执行完成返回ModelAndView
  7. HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
  8. DispatcherServlet将ModelAndView传给ViewReslover视图解析器
  9. ViewReslover解析后返回具体View
  10. DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
  11. DispatcherServlet响应用户

三大组件 

  1. HandlerMapping,处理器映射器,通过url找到执行的方法,相当于hashmap,key是url,value是方法对象
  2. HandlerAdapter,处理器适配器,根据不同的handler去找到不同的HandlerAdapter去执行这个handler
  3. ViewReslover,视图解析器,根据不同类型的视图去解析视图

关于org.springframework.ui.Model 

model底层其实就是用request域来传递数据的,但是对request域进行了拓展

SpringMVC默认支持的参数类型

HttpServletRequest request, HttpServletResponse response, HttpSession session, Model model

SpringMVC可以接受的参数类型 (7种)

1、springMvc可以直接接收基本数据类型,包括string,spirngMvc可以帮你自动进行类型转换
2、controller中方法接收的参数的变量名称必须要等于页面上input框的name属性值
3、spirngMvc可以直接接收pojo类型:要求页面上input框的name属性名称必须等于pojo的属性名称
4、VO类型
5、数组
6、List
7、默认数据类型

Controller方法返回值

1、返回ModelAndView。addObject方法指定返回页面的数据,setViewName方法指定返回的页面
          ModelAndView 
                  modelAndView.addObject("itemList", list); 指定返回页面的数据
                  modelAndView.setViewName("itemList");      指定返回的页面
2、返回String。返回到指定页面,返回页面数据通过Model来完成
          返回普通字符串,就是页面去掉扩展名的名称, 返回给页面数据通过Model来完成
          返回的字符串以forward:开头为请求转发
          返回的字符串以redirect:开头为重定向
3、返回void(使用它破坏了springMvc的结构,所以不建议使用)。可以用request.setAttribute给页面设置数据,也可以用request.getRequestDispatcher().forward()来指定返回的页面。如果controller返回值为void则不走springMvc的组件,所以要写页面的完整路径名称

你可能感兴趣的:(SpringMVC)