zoukankan      html  css  js  c++  java
  • Spring MVC流程

    具体流程

    1.请求离开客户端,带上用户所请求内容的信息,如url、参数等

    2.请求到达DispatcherServlet,这是一个前端控制器,一个用于调度的Servlet,此时它的职责是,将请求发送给不同的控制器(controller)

    3.请求到达Controller后卸下负载(信息),等待Controller处理,而Controller完成逻辑处理,生成一些信息,称为Model(模型),这种原始的信息需要进行格式化以便呈现给用户(例如HTML的方式)。

    4.Controller将Model打包,标示用于渲染的视图名,连同请求一起返送给DispatcherServlet

    备注: 调度完全由DispatcherServlet处理,实现Controller和View的解耦

    此视图名不是真实视图名,而是逻辑名称

    5.Dispatcher Servlet通过view resolver(视图解析器)得出真实视图名

    6.对应的视图通过Model渲染出输出

    7.输出通过响应对象返回给客户端

    容器间的关系:  

    web容器->servlet容器(servlet上下文)->spring容器->spring MVC子容器

    常用的servlet容器: Tomcat,值得注意的是SpringBoot默认使用Tomcat作为嵌入式的Servlet容器;

    -------------------------------------------------------------------------

    项目操作流程

    配置DispatcherServlet

    前提:

    1.javax.servlet.ServletContainerInitializer用来配置servlet容器 s

    2.SpringServletContainerInitializer实现了它 s1实现s

    3.SpringServletContainerInitializer查找实现WebApplicationInitializer的类 s1查找w

    4.AbstractAnnotationConfigDispatcherServletInitializer实现WebApplicationInitializer w1实现w

    同时它能创建DispathcerServlet,DispathcerServlet启动时会创建Spring应用上下文

    其实AbstractAnnotationConfigDispatcherServletInitializer不仅创建DispatcherServlet,也会创建ContextLoaderListener

    DispatcherServlet: 创建spring应用上下文,加载属于web组件的bean,例如控制器、视图解析器及处理器映射 getServletConfigClasses

    ContextLoaderListener: 创建??应用上下文,加载其他bean,例如驱动应用后端的中间层和数据层组件 getRootConfigClasses

    启用Spring MVC

    SpittrWebAppInitializer 

    WebConfig

    @Configuration

    @EnableWebMvc

    内部配置视图解析器 @Bean

    重写对静态资源的处理

    RootConfig

  • 相关阅读:
    python序列(五)切片操作
    python序列(四)成员资格判断
    python序列(三)列表元素访问与计数
    python序列(二)列表的删除操作
    Lua调用自定义C++类
    TexturePacker的使用方法
    随笔—邀请赛前练— Codeforces Round #329 (Div. 2) 2Char
    随笔—邀请赛前练— Codeforces Round #328 (Div. 2) B. The Monster and the Squirrel
    随笔—邀请赛前训—Codeforces Round #328 (Div. 2) A. PawnChess
    随笔—邀请赛前训—Codeforces Round #327 (Div. 2) Rebranding
  • 原文地址:https://www.cnblogs.com/yanze/p/9486359.html
Copyright © 2011-2022 走看看