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

  • 相关阅读:
    mysql练习
    导航 开发 常用 官方网址 办公 政府 网站 url
    Yii 数据库 连接 Error Info: 向一个无法连接的网络尝试了一个套接字操作。
    xampp Apache Access forbidden! Error 403 解决方法
    MySQL 没有密码 初始化 设置 用户名
    Apache 虚拟机 vhosts C:WINDOWSsystem32driversetchosts
    js 返回上一页 链接 按钮
    MySQL concat concat_ws group_concat 函数(连接字符串)
    PHP的UTF-8中文转拼音处理类(性能已优化至极致)
    原生JavaScript实现金额大写转换函数
  • 原文地址:https://www.cnblogs.com/yanze/p/9486359.html
Copyright © 2011-2022 走看看