SpringMVC执行详细流程与springmvc配置文件

SpringMVC执行详细流程与springmvc配置文件

SpringMVC执行详细流程

在这里插入图片描述

  1. 用户发送请求至前端控制器DispatcherServlet,判断springmvc中是否存在与请求相应的映射,存在直接转“3”。
  2. 是否配置<mvc:default-servlet-handler>,是则访问目标静态资源,否则前端404+后端控制台报错"No mapping found for HTTP request with URI [/xxx/xxx] in DispatcherServlet" 。
  3. DispatcherServlet收到请求调用处理器映射器HandlerMapping。
  4. 处理器映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(带业务对象方法和拦截器)一并返回给DispatcherServlet。
  5. DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter执行HandlerAdapter处理一系列的操作,如:参数封装,数据格式转换,数据验证等操作。
  6. 调用拦截器的preHandler方法
  7. 执行处理器Handler(Controller,也叫页面控制器)。
  8. Handler执行完成返回ModelAndView
  9. 调用拦截器的postHandler方法
  10. HandlerAdapter将Handler执行结果ModelAndView返回到DispatcherServlet
  11. DispatcherServlet将ModelAndView传给ViewReslover视图解析器
  12. ViewReslover解析后返回具体View
  13. DispatcherServlet对View进行渲染视图(即将模型数据model填充至视图中)。
  14. 调用拦截器的afterHandler方法
  15. DispatcherServlet响应用户。
  • 流程为我自己的理解与原作者文章与整合,原文出处:https://www.jianshu.com/p/8a20c547e245

springmvc配置文件

web.xml

最基本必配的前端控制器

   <!-- springMVC的前端控制器 -->
   <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--init-param配置文件的位置 如果springmvc.xml是以xxx-servlet.xml命名,并且位于/WEB-INF下则不需要配置 -->
        <init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:springmvc.xml</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup><!-- 1表示立即加载 -->
  </servlet>
  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

springmvc.xml

  1. 类包扫描
  2. 视图解析器
  3. 静态资源处理器与注解驱动器
<beans>
	<context:component-scan base-package="com.*" >
        
	</context:component-scan>

	<!-- 配置视图解析器 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/page/"/><!-- 前缀 -->
		<property name="suffix" value=".jsp"/>><!-- 后缀 -->
	</bean>
	
    <mvc:annotation-driven /><!-- 使静态资源可被访问 -->
    <mvc:default-servlet-handler/><!-- 配置注解驱动后不配这个无法正常访问requestMapping -->
</beans>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值