一、JavaEE体系结构
二、mvc 设计模式|思想
1 | 复制代码Model 模型层 (javaBean组件 = 领域模型(javaBean) + 业务层 + 持久层) |
三、springmvc简介
1 | 复制代码springmvc是一个web层mvc框架,类似struts2。 |
四、springmvc和spring之间关系
1 | 复制代码springmvc是spring的部分,其实就是spring在原有基础上,又提供了web应用的mvc模块。 |
五、sprigmvc和struts2的比较
1 | 复制代码实现机制: |
六、springmvc的工作原理图
七、springmvc具体流程步骤
1 | 复制代码⑴ 用户发送请求至DispatcherServlet。 |
八、springmvc核心组件说明
1 | 复制代码(1)前端控制器DispatcherServlet(配置即可) |
九、springmvc入门案例
- 创建一个maven工程
- 配置pom.xml
引入相关依赖:spring的基本包、springmvc需要的spring-webmvc,日志相关的slf4j-log4j12,jsp相关的jstl、servlet-api、jsp-api。
- 配置web.xml
因为DispatcherServlet本身就是一个Servlet,所以需要在web.xml配置。
- 配置springmvc.xml
一、使用默认加载springmvc配置文件的方式,必须按照以下规范:
①命名规则:-servlet.xml ====> springmvc-servlet.xml
②路径规则:-servlet.xml必须放在WEB-INF下边
二、如果要不按照默认加载位置,则需要在web.xml中通过标签来指定springmvc配置文件的加载路径,如上图所示。
- 自定义Controller(处理器)
将自定义的 Controller 处理器配置到 spring 容器中交由 spring 容器来管理,因为这里的 springmvc.xml 配置文件中处理器映射器配置的是 BeanNameUrlHandlerMapping ,根据名字可知这个处理器映射器是根据 bean (自定义Controller) 的 name 属性值url去寻找执行类 Handler(Controller) , 所以bean的name属性值即是要和用户发送的请求路径匹配的 url 。
- 定义视图页面
根据视图解析路径:WEB-INF/jsps/index.jsp
- 根据代码分析springmvc执行流程
- 处理器映射器(配置多个处理器映射器可以共存)
1 | 复制代码<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> |
功能:根据bean(自定义Controller)的name属性的url去寻找执行类Controller。
- 处理器适配器(配置多个处理器适配器可以共存)
1 | 复制代码<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> |
功能:自定义的处理器(Controller)实现了Controller接口时,适配器就会执行Controller的具体方法。
- 处理器适配器源码SimpleControllerHandlerAdapter
SimpleControllerHandlerAdapter会自动判断自定义的处理器(Controller)是否实现了Controller接口,如果是,它将会自动调用处理器的handleRequest方法。
Controller接口中有一个方法叫handleRequest,也就是处理器方法。
因此,自定义的Controller要想被调用就必须实现Controller接口,重写Controller接口中的处理器方法。
- 添加日志
- 运行结果
1 | 复制代码 如果觉得这篇文章对你有帮助 |
本文转载自: 掘金