(front controller)DispatcherServlet來攔截用戶請求,在web.xml文件中配置(文件配置核心部分)以下:
<!-- 定義前端控制器--->前端
<servlet>web
<servlet-name>springmvc</servlet-name> <servleclass>org.springframework.web.servlet.DispatcherServlet</servletclass> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/springmvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup>
</servlet>spring
<!-- 讓spring MVC的前端控制器攔截全部請求 -->服務器
<servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
若是須要一post方式提交請求,則定義包含表單數據的JSP頁面,若是僅僅是以get方式提交請求則無需通過這一步mvc
,能夠實現Controller類或者使用@Controller註解
配置Handle
在spring MVC配置文件中配置handle
在spring2.5以前採用注入方式來配置handle,舉例以下:
<bean name="/pathname" class="the path of the handleclass"/>
在spring2.5以後推薦使用註解來配置handle,舉例以下:app
<context:component-scan base-package="org.fkit.controller"/><.context> <beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> <beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
【1】用戶向服務器發送請求,請求被spring的前端控制器DispatchServlet攔截下來post
【2】DispatchServlet對請求的URL進行解析,獲得URI,根據該URI,調用HandlerMapping得到該handler配置的全部相關對象,包括handler對象以及handler對象對應的攔截器url
【3】DispatchServlet根據得到的handler,選擇一個合適的handlerAdapter,HandlerAdapter會調用handler實際處理請求的方法spa
【4】提取請求的模型數據code
【5】Handler執行完成後,向DispatchServlet返回一個ModelAndView對象
【6】根據ModelAndView對象,選擇一個合適的ViewResolver
【7】ViewResolver結合model和View來渲染視圖
【8】將視圖渲染結果返回給客戶端