• Spring MVC


    一、基本概念图示

    二、web.xml文件配置解析

    DispatcherServlet作用

    DispatcherServlet是前端控制器设计模式的实现,提供spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 具体请参考第二章的图2-1。

     

    DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:

    1、文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;

    2、通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor拦截器);

    3、通过HandlerAdapter支持多种类型的处理器(HandlerExecutionChain中的处理器);

    4、通过ViewResolver解析逻辑视图名到具体视图实现;

    5、本地化解析;

    6、渲染具体的视图等;

    7、如果执行过程中遇到异常将交给HandlerExceptionResolver来解析。

     

    从以上我们可以看出DispatcherServlet主要负责流程的控制(而且在流程中的每个关键点都是很容易扩展的)。

     

    DispatcherServlet在web.xml中的配置

    1. <servlet>  
    2.     <servlet-name>chapter2</servlet-name>  
    3.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    4.     <load-on-startup>1</load-on-startup>  
    5. </servlet>  
    6. <servlet-mapping>  
    7.     <servlet-name>chapter2</servlet-name>  
    8.     <url-pattern>/</url-pattern>  
    9. </servlet-mapping>  

     

    load-on-startup:表示启动容器时初始化该Servlet;

    url-pattern:表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。

     

    该DispatcherServlet默认使用WebApplicationContext作为上下文,Spring默认配置文件为“/WEB-INF/[servlet名字]-servlet.xml”。

     

    DispatcherServlet也可以配置自己的初始化参数,覆盖默认配置:

    摘自Spring Reference

    参数

    描述

    contextClass

    实现WebApplicationContext接口的类,当前的servlet用它来创建上下文。如果这个参数没有指定, 默认使用XmlWebApplicationContext。

    contextConfigLocation

    传给上下文实例(由contextClass指定)的字符串,用来指定上下文的位置。这个字符串可以被分成多个字符串(使用逗号作为分隔符) 来支持多个上下文(在多上下文的情况下,如果同一个bean被定义两次,后面一个优先)。

    namespace

    WebApplicationContext命名空间。默认值是[server-name]-servlet。

     

    因此我们可以通过添加初始化参数

     

    1. <servlet>  
    2.     <servlet-name>chapter2</servlet-name>  
    3.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    4.     <load-on-startup>1</load-on-startup>  
    5.     <init-param>  
    6.         <param-name>contextConfigLocation</param-name>  
    7.         <param-value>classpath:spring-servlet-config.xml</param-value>  
    8.     </init-param>  
    9. </servlet>  

     

    如果使用如上配置,Spring Web MVC框架将加载“classpath:spring-servlet-config.xml”来进行初始化上下文而不是“/WEB-INF/[servlet名字]-servlet.xml”。

    上下文关系

    集成Web环境的通用配置:

    1. <context-param>  
    2.       <param-name>contextConfigLocation</param-name>  
    3.       <param-value>  
    4.           classpath:spring-common-config.xml,  
    5.           classpath:spring-budget-config.xml  
    6.       </param-value>  
    7. </context-param>  
    8. <listener>  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    9. </listener>  

     

    如上配置是Spring集成Web环境的通用配置;一般用于加载除Web层的Bean(如DAO、Service等),以便于与其他任何Web框架集成。

    contextConfigLocation:表示用于加载Bean的配置文件;

    contextClass:表示用于加载Bean的ApplicationContext实现类,默认WebApplicationContext。

     参考文档:

    http://blog.csdn.net/sike2008/article/details/42468729

    http://blog.csdn.net/liuzhen917/article/details/8524082

  • 相关阅读:
    苹果MAC OS查看MAC地址及修改ip
    win10系统绑定本地IP和mac地址
    CentOS7 配置阿里云yum源,非常之简单
    Prism框架研究(一)
    如何建立一个WCF服务并将其发布到IIS上
    SQL Server2012如何导出sql脚本并且还原数据库
    WPF设置软件界面背景为MediaElement并播放视频
    一个加载时带动画效果的ListBoxItem
    无法将从VSS中的解决方案添加到TFS的源代码管理器中
    关于WPF中Popup中的一些用法的总结
  • 原文地址:https://www.cnblogs.com/sunjianfei/p/6501067.html
Copyright © 2020-2023  润新知