• springmvc系列一 之配置介绍(包含官网doc)


    1.springmvc 官网参考地址:

      https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html

    2. springmvc 的介绍

       Spring Web MVC是基于Servlet API构建的原始Web框架,所以从一开始就包含在spring框架中。

    3.DispatcherServlet

      springmvc像大多数web框架一样,作为一个核心的前端控制器。dispatherServlet 继承servlet 提供了分发客户端发送来的请求到相应的handler 中。这个模型平滑的支持不同的工作流。(页面请求,文件上传等);dispatcherServlet 是一个服务端应用程序,要想实现springmvc  作为控制层,则需要在web.xml 中将这个sevlet 配置进去,以便于这个servlet 使用spring 配置文件中的配置项。例如获取前端的request 请求,将携带的参数绑定到controller 中

    4.web.xml  的配置

      其实这个配置很类似于struts2 的配置,都是将核心控制器配置进来,以下是基于springmvc 的配置

    <web-app>
    
    <!-- 配置监听,监听配置文件--> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
    <!-- 将springmvc 的配置文件引入 ,这里有多中配置方式--> <context-param> <param-name>contextConfigLocation</param-name>
          
          <!--方式1--> <param-value>/WEB-INF/app-context.xml</param-value>
             <!--方式2->
        <!--     <param-value>classpath:*-context.xml</param-value>   -->
        </context-param>
    
    <!-- 将前端控制器加载进来--> <servlet> <servlet-name>app</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>
    classpath:spring-mvc.xml
    </param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
    <!-- 配置过滤的请求--> <servlet-mapping> <servlet-name>app</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>

     5. 特殊的bean

      dispatcherServlet 只是作为前端控制器,具体的业务处理将交给特定的bean 进行处理。你可以自定义或者扩展特殊的bean 处理对应的业务场景。

      A。HandlerMapping :根据客户端发送过来的request 请求,将请求映射到对应的处理器

      B。HandlerAdapter:适配器 根据客户端的请求去匹配那个适配器处理这个请求,根据具体的细节划分对应的适配器

      C。 ViewResolver :视图解析器,将controller 返回的数据封装到视图中,并寻找指定的视图进行展现

      D。MultipartResolver :富文本解析器:例如返回pdf/img/excel 等

       E。 ThemeResolver  :返回不同的主题

    6.dispatcher 执行的过程

      首先dispatcher  接受用户的请求,前端控制器接受到请求之后不自己做处理,而是委托给其他解析器进行处理,dispatcher 作为统一站点进行全局的流程控制。

      handlerMapping 把从dispatcher 接收到的请求映射为HandlerExecutionChain 对象(包含一个Handler 处理器对象,多个拦截器)

      handlerAdapter 将会把处理器包装成为适配器,从而支持多种类型的处理器。之后根据适配的结果调用正真的处理器,并返回一个modelAndView 对象(包含模型数据。逻辑视图名)

      viewResolver 把逻辑视图名解析为具体的view 

      view 根据传递进来的模型数据将页面进行渲染

      返回控制权给dispatcher ,并由他返回响应给用户

      

     

  • 相关阅读:
    如何在windows 11中安装WSLG(WSL2)
    JavaScript中一些有关数组的API
    49 个在工作中常用且容易遗忘的 CSS 样式清单整理(转)
    MAC的一些命令
    高级前端进阶(一)
    kindEditor参数详解
    kindEditor用法总结
    kindEditor用法
    Object浅拷贝、深拷贝
    api连接Kafka报错:java.net.UnknownHostException: VM-0-12-centos: nodename nor servname provided, or not known
  • 原文地址:https://www.cnblogs.com/blogxiao/p/8306794.html
Copyright © 2020-2023  润新知