1.springMVC的重要类
- DispatcherServlet:最核心的类(可调用处理器映射器、处理器适配器、视图解析器。用户请求响应也只需要和DispatcherServlet进行交互)
- BeanNameUrlHandlerMapping:处理器映射器
- SimpleControllerHandlerAdapter:处理器适配器
- InternalResourceViewResolver:视图解析器
2.springMVC的重要配置文件
(1)web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--1.注册DispatcherServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--关联一个springmvc的配置文件:【servlet-name】-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>
<!--/ 匹配所有的请求;(不包括.jsp)-->
<!--/* 匹配所有的请求;(包括.jsp)-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
(2)springmvc-servlet.xml文件(即spring的配置文件)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--视图解析器:DispatcherServlet给他的ModelAndView-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>
<!--Handler-->
<bean id="/hello" class="com.spring.controller.HelloController"/>
</beans>
3.springMVC的执行流程(4个步骤)
*用户在浏览器输入localhost:8080/lp/hello*
(1)DispatcherServlet调用处理器映射器
处理器映射器可以解析URL(localhost:8080/lp/hello),找到对应的处理器(也就是id="/hello"的handler),并将结果返回给DispatcherServlet
(2)DispatcherServlet调用处理器适配器
处理器适配器去执行具体的handler(也就是com.spring.controller.HelloController的controller程序)
controller程序返回ModelAndView对象,并将该对象返回给处理器适配器,处理器适配器再将结果返回给DispatcherServlet
(3)DispatcherServlet调用视图解析器
视图解析器负责处理ModelAndView对象的信息(例如加前缀后缀等),处理完信息后再将结果返回给DispatcherServlet
(4)DispatcherServlet去执行视图跳转