1.spring MVC中的前段控制器就是DsipatcherServlet,它在spring MVC框架中的結構圖以下:web
2.DispatcherServlet其實就是一個Servlet,它繼承了HttpServlet這個抽象類。spring
先來看下該類在的位置:app
爲了使用它,你須要在你的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攔截到。url
對於3.0++的容器,還有另一種配置方式,那就是用代碼方式代替:spa
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/*"); } }
設置容器加載時就啓動,設置映射的路徑。3d
3.每個DispatcherServlet都有本身的上下文環境(WebApplicationContext),它繼承了些上下文環境中的bean,並且能夠根據條件本身重寫。code
下面就是一個繼承圖解:xml
4.在web.xml中配置好DispatcherServlet後,容器啓動時回去WEB-INF文件夾下去找(默認[servlet-name]-servlet.xml)dispatcherServlet-servlet.xml,解析文件初始化裏面中的bean等。blog
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基本配置就完成了。