web.xml配置DispatcherServlet (***-servlert.xml)


 1. org.springframework.web.servlet.DispatcherServlet

所在jar包:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>3.2.3.RELEASE</version>
    </dependency>

默認配置文件:

  DispatcherServlet.properties

上下文:

  該DispatcherServlet默認使用WebApplicationContext作為上下文。

 

2. DispatcherServlet的作用:

  DispatcherServlet是前端控制器設計模式的實現,提供Spring Web MVC的集中訪問點,而且負責職責的分派,主要負責流程的控制。

  對應的是 controller 級別的配置,作用范圍是控制層上下文。

 

3. DispatcherServlet怎么配置

  servlet-name :隨便取。這里配置成[test]。Spring默認配置文件為"/WEB-INF/[servlet名字]-servlet.xml"。

  load-on-startup : web.xml中可配置多個servlet。 load-on-startup可指定在系統啟動時按順序加載servlet。

  url-pattern :表示哪些請求交給Spring Web MVC處理。此處會處理所有URI為"appName/test/*"的請求。

    <!--Spring view分發器-->
<servlet> <servlet-name>test</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/test/*</url-pattern> </servlet-mapping>

 

4. [servlet名字]-servlet.xml里面的配置

4.1 mvc:annotation-driven

  <mvc:annotation-driven />

為什么要配置annotation-driven:

  <mvc:annotation-driven />注冊了Spring MVC分發請求到控制器所必須的DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter實例。
如果沒有<mvc:annotation-driven/>,那么所有的Controller可能就沒有解析。

 

4.2 context:component-scan

    <context:component-scan base-package="com.test.web.controller" />

context:component-scan又干了啥:

a). 有了<context:component-scan>,另一個<context:annotation-config/>標簽根本可以移除掉,因為已經被包含進去了。
b). <context:component-scan>提供兩個子標簽:<context:include-filter>和<context:exclude-filter>各代表引入和排除的過濾。
c). spring會自動去掃描base-package下面或者子包下面的Java文件,如果掃描到有@Component @Controller@Service等這些注解的類,則把這些類注冊為bean。

 

4.3 mvc:interceptors

<mvc:interceptors>
    <bean class="com.test.web.MyInteceptor" />
</mvc:interceptors>

攔截器,攔截所有url。

 

心血來潮,稍微研究了一下DispatcherServlet。所知有限,這里就不介紹更多。

以下為所有參考的文章:

第三章 DispatcherServlet詳解 ——跟開濤學SpringMVC
http://jinnianshilongnian.iteye.com/blog/1602617

 

web.xml配置文件中的servlet和servlet-mapping
http://blog.csdn.net/u013815649/article/details/50435819

 

使用@Controller注解為什么要配置<mvc:annotation-driven />
http://blog.csdn.net/jbgtwang/article/details/7359592

 

spring mvc攔截器和<mvc:annotation-driven />的詳解
http://www.cnblogs.com/yangzhilong/p/3725849.html

 

Spring組件掃描<context:component-scan/>使用詳解
http://www.cnblogs.com/maybo/p/5189516.html

 

<context:component-scan>使用說明
http://blog.csdn.net/chunqiuwei/article/details/16115135

 

Spring MVC 教程,快速入門,深入分析(推薦閱讀)

http://elf8848.iteye.com/blog/875830


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM