zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Hdu 5396 Expression (区间Dp)
    Lightoj 1174
    codeforces 570 D. Tree Requests (dfs)
    codeforces 570 E. Pig and Palindromes (DP)
    Hdu 5385 The path
    Hdu 5384 Danganronpa (AC自动机模板)
    Hdu 5372 Segment Game (树状数组)
    Hdu 5379 Mahjong tree (dfs + 组合数)
    Hdu 5371 Hotaru's problem (manacher+枚举)
    Face The Right Way---hdu3276(开关问题)
  • 原文地址:https://www.cnblogs.com/sunjianfei/p/6501067.html
Copyright © 2011-2022 走看看