Spring框架总结(7)

续上篇&SpringMVC工作原理&小知识点(重定向和转发&拦截器&静态资源处理)

  1. @SessionAttributes 注解
    1. 用来指定哪些数据存储到session中
    2. 可以通过type,name来分别指定
    3. 若在此注解中指定,不仅向session中存储,同时也向request中存储
  2. @ModelAttribute 注解
    1. 作用:无论访问哪个控制方法,都会先调用使用了此注解的方法
    2. 在使用此注解的方法中可以将对象的默认值先存储在数据模型中;当入参到达时先检查ModeAttribute中添加的数据,若存在则更改
  3. SpringMVC工作原理
    1. SpringMVC流程
      1. 用户发送请求至前端控制器DispatcherServlet。
      2. DispatcherServlet收到请求调用HandlerMapping处理器映射器。
      3.  处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
      4. DispatcherServlet调用HandlerAdapter处理器适配器。
      5. HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
      6.  Controller执行完成返回ModelAndView。
      7.  HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
      8. DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
      9. ViewReslover解析后返回具体View。
      10. DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
      11. DispatcherServlet响应用户。
    2. 组件说明:以下组件通常使用框架提供实现
      1. ViewResolver:通过扩展视图解析器,支持更多类型的视图解析,例如:jsp、freemarker、pdf、excel等。
      2. HandlAdapter:通过扩展处理器适配器,支持更多类型的处理器。
      3. HandlerMapping:通过扩展处理器映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。 
      4. DispatcherServlet:作为前端控制器,整个流程控制的中心,控制其它组件执行,统一调度,降低组件之间的耦合性,提高每个组件的扩展性。
  4. 关于视图
    1. 两个接口:
      1. View是所有视图都需要实现的接口,主要方法是render(渲染)
      2. ViewResolver:视图解析器,负责创建View;常用的视图解析器有 IntervalResourceViewResolver
  5. 关于重定向和转发
    1. 当请求方法返回字符串时,可以通过设置forward和redirect作为字符串的前缀来指定转发和重定向;例如:
      1. return "forward:success.jsp"(返回的该jsp不能再WEB-INF下,而是在webapp下,下例同理)
      2. return"redirect:error.jsp"
      3. 二者皆可使用" / "+文件名:" / "代表工程根目录(原生servlet的" / "代表服务器根目录),不带" / "代表当前路径
  6. 拦截器(HandlerInterceptor)
    1. SpringMVC的一个组件,可以拦截所有的SpringMVC请求,无论该请求是否被映射
    2. 创建拦截器的步骤
      1. 定义拦截器类实现接口
      2. 配置拦截器
  7. 处理静态资源
    1. 使用如下配置对WEB-INF下的文件做映射

猜你喜欢

转载自blog.csdn.net/addkai/article/details/81257330
今日推荐