SpringMVC框架的工作原理

简介: 学习SpringMVC的工作原理,首先有三个要解决的问题: (1)DispathcherServlet框架如何截获特定的HTTP请求,交由SpringMVC处理? (2)位于Web层的Spring容器(WebApplicationContext),如何与位于业务层的Spring容器(ApplicationContext)建立联系,以使Web层的Bean可以调用业务层的Bean? (3)如何初始化SpringMVC的各个组件,并将它们装配到DispatcherServlet中?   概念,逻辑,问题。

学习SpringMVC的工作原理,首先有三个要解决的问题:

(1)DispathcherServlet框架如何截获特定的HTTP请求,交由SpringMVC处理?

(2)位于Web层的Spring容器(WebApplicationContext),如何与位于业务层的Spring容器(ApplicationContext)建立联系,以使Web层的Bean可以调用业务层的Bean?

(3)如何初始化SpringMVC的各个组件,并将它们装配到DispatcherServlet中?

  概念,逻辑,问题。搞懂一个内容,首先重点注意涉及到的所有概念,之后学习这些概念的逻辑关系,是怎么来实现这个内容点的。其中可能会遇到一些问题,在解决问题的同时掌握了这个内容点。

  第一个问题:配置DispatcherServlet,截获特定的URL请求。DispatherServlet是框架的核心控制器,在web.xml文件中进行配置一个Servlet ,并通过<servlet-mapping>指定其处理的URL。所有此配置类型的请求将由DispatcherServlet处理(默认自动加载/WEB-INF/servletname-servlet.xml的Spring配置文件),启动Web层的Spring容器。其中web.xm文件中还配置通过contextConfigLocation参数指定业务层Spring容器的配置文件。之后配置一个Listener来通过contextConfigLocation参数所指定的Spring配置文件启动业务层的Spring容器。

  多个Spring容器之间可以设置为父子间的关系,实现程序的解耦。在这,web层的容器将作为业务层的容器。即web层容器可以引用业务层的容器,而业务层的容器不可以访问web层的容器。当然一个web.xml文件可以配置多个DispatcherServlet来处理多个不同的请求。

 

  ModelAndView对象既包括视图信息又包括了视图的渲染所需的模型数据信息,先理解为它代表着一个视图。接下来的问题是SpringMVC是如何根据这个对象转向真正的页面?

  同样使用了xml文件配置的方式(这个配置很重要)

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"

  p:viewClass="org.springframeword.web.servlet.view.JstLView"

  p:prefix=""

  p:suffix="*.jsp"/>

  当然,SpringMVC为试图名到具体视图的映射提供了许多可供选择的方法,这里只是其中的一种(通过为视图逻辑名添加前后缀的方式)。

以下为其工作原理图:

 

 

相关文章
|
5月前
|
前端开发 Java
自定义MVC工作原理
自定义MVC工作原理
35 0
|
11月前
|
设计模式 XML JSON
springMVC 工作原理和流程
springMVC 工作原理和流程
74 0
springMVC 工作原理和流程
|
存储 搜索推荐 前端开发
SpringMVC工作原理详解
SpringMVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是DispatcherServlet,它是一个Servlet,顶层实现的是Servlet接口。
221 0
SpringMVC工作原理详解
|
Java 数据库连接
注解@notBlank的工作原理
注解@notBlank的工作原理
379 0
注解@notBlank的工作原理
|
Java 应用服务中间件 Android开发
SpringMVC框架基础知识(02)
SpringMVC框架基础知识(02)
135 0
|
存储 应用服务中间件
SpringMVC框架基础知识(04)
SpringMVC框架基础知识(04)
133 0
|
应用服务中间件
SpringMVC框架基础知识(06)
SpringMVC框架基础知识
164 0
SpringMVC框架基础知识(01)
SpringMVC框架基础知识(01)
203 0
|
Java 数据安全/隐私保护
SpringMVC框架基础知识(05)
SpringMVC框架基础知识(05)
201 0
SpringMVC框架基础知识(05)