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中。

  1. 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利用就配置实现,接下就能够实现代码的编写。