zoukankan      html  css  js  c++  java
  • SpringMVC的运行原理

    1. 核心组件:(SpringMVC 四大组件)

    1.1 DispatchServlet: Servlet分发器,整个SPringMVC框架入口.

    1.2 HandlerMapping:寻找URL所请求的HandlerMethod,@RequestMapping()

    1.2.1 使用实现类DefaultAnnotationHandlerMapping实际工作.

    1.3 HandlerAdapter:实际调用HandlerMethod的组件.

    1.3.1 使用实现类AnnotationMethodHandlerAdapter

    1.4 ViewResovler:视图解析器.作用解析HandlerMethod返回值.把逻辑视图转换为需要调用的物理视图.

    1.4.1 自定义时:InternalResourceViewResolver

    1. 当配置了<mvc:annotation-driven/>,实际上创建了上面实现类的<bean>对象
    2. 还可能使用的组件或接口或类:

    3.1 Controller : 控制器类

    3.2 HandlerMethod: 控制器方法

    3.3 View: 视图

    3.4 Model: 模型

    3.5 ModelAndView:模型和视图.SpringMVC所有HandlerMethod最终都会转换为ModelAndView

    3.6 HandlerInterceptor: 拦截器

    3.7 HandlerExceptionResolver:异常映射解析器.

    3.8 MultipartResolver: Multipart解析器

    3.9 CharacterEncodingFilter: 字符编码过滤器

    1. 时序图(Sequence Diagram)

    4.1 以时间点作为基本单位,观察每个时间点状态.

    4.2 具体时序图

    5.文字解释:

    当用户发起请求后,执行DiapacherServlet,如果是JSP直接调用jsp页面.如果不是JSP,DiapacherServlet调用HandlerMapping判断请求URL是否合法,如果URL不存在报错,如果URL存在使用HandlerAdapter调用具体的HandlerMethod,HandlerMethod执行完成后会返回ModelAndView,会被ViewResovler解析,调用具体的物理视图.

    最终响应给客户端浏览器.

    这就是SpringMVC运行原理(给面试官说的)

  • 相关阅读:
    python Flask JQuery使用说明
    sqlserve 数据类型具体解释
    赵雅智_ListView_SimpleAdapter
    HDU 1018 Big Number (log函数求数的位数)
    cocos2d函数
    BZOJ 3514 Codechef MARCH14 GERALD07加强版 Link-Cut-Tree+划分树
    QQ好友列表数据模型封装
    【Codeforces】512C Fox and Dinner
    spring中操作mysql数据库
    【读书笔记】iOS-Xcode-模拟器操作的一些快捷键
  • 原文地址:https://www.cnblogs.com/vincentmax/p/14323975.html
Copyright © 2011-2022 走看看