共计 3292 个字符,预计需要花费 9 分钟才能阅读完成。
1.Spring MVC 概述
Spring MVC 是 Spring 提供的一个弱小而灵便的 web 框架。借助于注解,Spring MVC 提供了简直是 POJO 的开发模式,使得控制器的开发和测试更加简略。这些控制器个别不间接解决申请,而是将其委托给 Spring 上下文中的其余 bean,通过 Spring 的依赖前端培训注入性能,这些 bean 被注入到控制器中。
Spring MVC 次要由 DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。他的两个外围是两个外围:
处理器映射:抉择应用哪个控制器来解决申请
视图解析器:抉择后果应该如何渲染
通过以上两点,Spring MVC 保障了如何抉择管制解决申请和如何抉择视图展示输入之间的松耦合。
2.SpringMVC 运行原理
(1) Http 申请:客户端申请提交到 DispatcherServlet。
(2) 寻找处理器:由 DispatcherServlet 控制器查问一个或多个 HandlerMapping,找到解决申请的 Controller。
(3) 调用处理器:DispatcherServlet 将申请提交到 Controller。
(4)(5) 调用业务解决和返回后果:Controller 调用业务逻辑解决后,返回 ModelAndView。
(6)(7)解决视图映射并返回模型:DispatcherServlet 查问一个或多个 ViewResoler 视图解析器,找到 ModelAndView 指定的视图。
(8) Http 响应:视图负责将结果显示到客户端。
3.SpringMVC 接口解释
(1)DispatcherServlet 接口:
Spring 提供的前端控制器,所有的申请都有通过它来对立散发。在 DispatcherServlet 将申请分发给 Spring Controller 之前,须要借助于 Spring 提供的 HandlerMapping 定位到具体的 Controller。(2)HandlerMapping 接口:
可能实现客户申请到 Controller 映射。
(3)Controller 接口:
须要为并发用户解决上述申请,因而实现 Controller 接口时,必须保障线程平安并且可重用。
Controller 将解决用户申请,这和 Struts Action 表演的角色是统一的。一旦 Controller 解决完用户申请,则返回 ModelAndView 对象给 DispatcherServlet 前端控制器,ModelAndView 中蕴含了模型(Model)和视图(View)。
从宏观角度思考,DispatcherServlet 是整个 Web 利用的控制器;从宏观思考,Controller 是单个 Http 申请处理过程中的控制器,而 ModelAndView 是 Http 申请过程中返回的模型(Model)和视图(View)。(4)ViewResolver 接口:
Spring 提供的视图解析器(ViewResolver)在 Web 利用中查找 View 对象,从而将相应后果渲染给客户。
4.DispatcherServlet:
是整个 Spring MVC 的外围。它负责接管 HTTP 申请组织协调 Spring MVC 的各个组成部分。其次要工作有以下三项:
(1)截获合乎特定格局的 URL 申请。
(2)初始化 DispatcherServlet 上下文对应的 WebApplicationContext,并将其与业务层、长久化层的 WebApplicationContext 建设关联。
(3)初始化 Spring MVC 的各个组成组件,并拆卸到 DispatcherServlet 中。
- SpringMVC 配置
我的项目整体构造如下:
(1)在 web.xml 文件中进行配置,在配置中设置 springmvc-context.xml 的门路,同时配置一个 DispatcherServlet, 代码如下:
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:META-INF/spring/springmvc-context.xml</param-value>
</init-param> <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
(2)配置 springmvc-context.xml 文件,这一部分次要是开启注解性能、配置试图解析器,代码如下:
<?xml version=”1.0″ encoding=”UTF-8″?><beans:beans xmlns:beans=”http://www.springframework.org/schema/beans” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:context=”http://www.springframework.org/schema/context” xmlns:mvc=”http://www.springframework.org/schema/mvc” xmlns:p=”http://www.springframework.org/schema/p” xsi:schemaLocation=”http://www.springframework.org/schema/mvc http://www.springframework.or… http://www.springframework.or… http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.or… http://www.springframework.org/schema/context/spring-context-3.0.xsd “> <mvc:annotation-driven /> <!– ①:对 web 包中的所有类进行扫描,以实现 Bean 创立和主动依赖注入的性能 –> <context:component-scan base-package=”com.zjn” /> <!– 这两个类用来启动基于 Spring MVC 的注解性能,将控制器与办法映射退出到容器中 –> <beans:bean class=”org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping” /> <beans:bean class=”org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter” /> <!– 这个类用于 Spring MVC 视图解析 –> <beans:bean id=”viewResolver” class=”org.springframework.web.servlet.view.InternalResourceViewResolver”> <beans:property name=”prefix” value=”/WEB-INF/pages/” /> <beans:property name=”suffix” value=”.jsp” /> </beans:bean></beans:beans>
这样一个简略的 web 利用就配置实现,接下就能够实现代码的编写。