SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,是一个表现层框架,是基于组件方式去执行流程的。SpringMVC处理请求的机制是一个核心控制器(DispatcherServlet),它是SpringMVC的一个servlet,就相当于 mvc 模式中的 c,DispatcherServlet 是整个流程控制的中心,用户所有请求都会经过这个servlet,由它调用其它组件处理用户的请求。
SpringMVC 简单使用步骤:
1、在pom文件中导入spring-web和spring-webmvc两个jar包的坐标;
2、在web.xml文件中配置核心控制器,并在其中同时加载spring的xml配置文件,代码:

<!--配置前端控制器servlet-->
<servlet>
  <servlet-name>DispatcherServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <!--加载配置文件-->
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:springmvc.xml</param-value>
  </init-param>
  <!--该servlet对象在服务器启动时就会创建-->
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>DispatcherServlet</servlet-name>
  <!--只写/表示任何请求都会经过该servlet-->
  <url-pattern>/</url-pattern>
</servlet-mapping>

3、在上面加载的spring的xml配置文件中开启MVC注解框架的支持、开启注解扫描以及配置视图解析器对象,代码:

<!--开启MVC注解框架的支持-->
<mvc:annotation-driven enable-matrix-variables="true"/>

<!--开启注解扫描-->
<context:component-scan base-package="com.itmao"></context:component-scan>

<!--配置视图解析器对象-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/pages/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>

4、创建一些案例用到的文件:
4.1、创建一个用户访问的入口jsp,里面只有一个超链接:

<a href="controller" >hello maven!</a>

href属性的值为控制器类中对这条请求做处理的方法的相对路径。
4.2、创建一个控制器类:

//控制器类
@Controller
public class HelloController {

    @RequestMapping(path = "/controller")
    public String sayHello(){
        System.out.println("Hello StringMVC");
        return "success";
    }
}

在类名上加上将其作为控制器类的注解@Controller,并为其中的方法加上映射注解@RequestMapping(path = “/controller”)。输出表示控制器对请求做的操作,返回值表示转发到success.jsp页面。
4.3、在/WEB-INF/pages/下面创建一个success.jsp页面,因为在配置视图解析器时已经将该目录下的所有jsp页面做了配置,所以在控制器中返回jsp的文件名就可达到转发的目的。
RequestMapping注解:
作用:用于建立请求 URL 和处理请求方法之间的对应关系。 可以写在类和方法上,控制器也可以分模块,例如account模块、user模块等,而每个方法中可能都有增删改查的处理,这时就可以在控制器类上加上RequestMapping注解,例如@RequestMapping(path = “account”)或@RequestMapping(path = “user”),这时调用处理请求的方法时就可以写

<a href="account/findAll" >hello maven!</a>

<a href="user/findAll" >hello maven!</a>

这样也可以使我们的 URL 更加精细。
属性:
value:和 path 属性的作用是一样的。
method:用于指定请求的方式。 可以有多个值,写法:method={RequestMethod.POST,RequestMethod.GET}。
params:用于指定请求参数,它支持简单的表达式。要求请求参数的key和value 必须和配置的一模一样。例如:params = {“accountName”},表示请求参数必须有 accountName,又如params = {“moeny!100”},表示请求参数中 money 不能是100。
headers:用于指定限制请求消息头的条件。 例如:headers = {“Accept”},表示请求消息头中必须有Accept请求头。