一、spring-mvc 如何处理请求
第一步—浏览器发送请求
第二步—验证请求地址-------是否符合前端控制器的url-pattern
url-pattern是配置在web.xml中的
路径模型 当浏览器发送的请求符合url-pattern的时候则请求会被DispatcherServlet请求控制器进行处理
/ :匹配浏览器向服务器发送的所有请求(不包括.jsp>
/*:匹配浏览器向服务器发送的所有请求(包括.jsp>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
第三步—符合前端控制器的url-pattern则交给前端控制器DispatcherServlet处理,他会读取springmvc中的核心配置文件
前端控制器DispatcherServlet是配置在web.xml中的
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
第四步—前端控制器DispatcherServlet读取springmvc中的核心配置文件,通过扫描组件找到控制器,当 请求地址 和 控制器中@RequestMapping注解的value属性值 相匹配时;注解所标识的控制器方法就是处理请求的方法。
第五步—找到方法后,执行方法处理请求,返回的字符串就是要跳转页面的逻辑视图;
第六步—然后逻辑视图会被springMVC的核心配置文件中的视图解析器进行解析,加上视图前缀和视图后缀就组成了完整视图,由Thymeleaf视图解析器进行跳转和渲染。
拓展 :
当前的springmvc的核心配置文件是放在webINFO中而一般核心配置文件是放在resources目录下,因此当我们要移动springmvc的核心配置文件到resources目录下后web.xml中要进行如下配置。
设置SpringMVC配置文件的位置和名称
contextConfigLocation
classpath:springmvc.xml
将Dispatcherservlet的初始化时间提前到服务器启动时
1
//配置springMVC的前端控制器Dispatcherservlet
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>