spring MVC學習(一)---前端控制器


1.spring MVC中的前段控制器就是DsipatcherServlet,它在spring MVC框架中的結構圖如下:

image

2.DispatcherServlet其實就是一個Servlet,它繼承了HttpServlet這個抽象類。

先來看下該類在的位置:

image

為了使用它,你需要在你的web應用程序中的web.xml中配置一下,配置如下:

<servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value></param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/example/*</url-pattern>
    </servlet-mapping>

這樣配置后,在你應用程序中所有請求中帶/example的都會被DispatcherServlet攔截到。

對於3.0++的容器,還有另外一種配置方式,那就是用代碼方式代替:

public class MyWebApplicationInitialzer implements WebApplicationInitializer {

    public void onStartup(ServletContext servletContext) throws ServletException {
        // TODO Auto-generated method stub
        ServletRegistration.Dynamic regist = 
                servletContext.addServlet("dispatcher", new DispatcherServlet());
        regist.setLoadOnStartup(1);
        regist.addMapping("/example/*");
        
    }

}

設置容器加載時就啟動,設置映射的路徑。

3.每一個DispatcherServlet都有自己的上下文環境(WebApplicationContext),它繼承了些上下文環境中的bean,而且可以根據條件自己重寫。

下面就是一個繼承圖解:

image

4.在web.xml中配置好DispatcherServlet后,容器啟動時回去WEB-INF文件夾下去找(默認[servlet-name]-servlet.xml)dispatcherServlet-servlet.xml,解析文件初始化里面中的bean等。

5.在實際的應用中我們一般不使用這種默認的配置,你只需要在web.xml中配置下面的文件就可,下面給一個例子,把param-value換成你自定義就可:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/root-context.xml</param-value>
    </context-param>
<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
<servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value></param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

6.好了,一個通用簡單spring MVC基本配置就完成了。

 


免責聲明!

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



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