-
DispatcherServlet表示前置控制器,用户发出请求,DispatcherServlet接收请求并且拦截请求
<!--注册DispatcherServlet--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--关联一个springmvc的配置文件 springmvc-servlet.xml--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <!--启动级别为1--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
-
HandlerMapping为处理器映射器,DispatcherServlet调用HandlerMapping,HandlerMapping根据请求的url找到对应的Handler
<!--处理器映射器--> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
-
HandlerExcution表示具体的Handler,其主要作用就是根据url查找控制器
-
HandlerExcution将解析后的信息传回DispatherServlet
-
HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler
<!--处理器适配器--> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
-
Handler让具体的Controller执行
-
Controller将具体的执行信息返回给HandlerAdapter,比如ModelAndView
-
HandlerAdapter将视图逻辑名或者模型传递给DispatcherServlet
-
DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递过来的逻辑视图名
<!--视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <!--前缀--> <property name="prefix" value="/WEB-INF/jsp/"/> <!--后缀--> <property name="suffix" value=".jsp"/> </bean>
-
视图解析器将解析的逻辑视图名传给DispatcherServlet
-
DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图
-
最终视图呈现给用户
![](https://img2024.cnblogs.com/blog/35695/202502/35695-20250207193705881-1356327967.jpg)