Controller控制器,主要负责功能处理部分:java
一、收集、验证请求参数并绑定到命令对象;web
二、将命令对象交给业务对象,由业务对象处理并返回模型数据;spring
三、返回ModelAndView(Model部分是业务对象返回的模型数据,视图部分为逻辑视图名)。mvc
还记得DispatcherServlet吗?主要负责总体的控制流程的调度部分:app
一、负责将请求委托给控制器进行处理;eclipse
二、根据控制器返回的逻辑视图名选择具体的视图进行渲染(并把模型数据传入)。ide
所以MVC中完整的C(包含控制逻辑+功能处理)由(DispatcherServlet + Controller)组成。学习
所以此处的控制器是Web MVC中部分,也能够称为页面控制器、动做、处理器。spa
Spring Web MVC支持多种类型的控制器,好比实现Controller接口,从Spring2.5开始支持注解方式的控制器(如@Controller、@RequestMapping、@RequestParam、@ModelAttribute等),咱们也能够本身实现相应的控制器(只须要定义相应的HandlerMapping和HandlerAdapter便可)。component
由于考虑到还有部分公司使用继承Controller接口实现方式,所以咱们也学习一下,虽然已经不推荐使用了。
对于注解方式的控制器,后边会详细讲,在此咱们先学习Spring2.5之前的Controller接口实现方式。
首先咱们将项目springmvc-chapter2复制一份改成项目springmvc-chapter4,本章示例将放置在springmvc-chapter4中。
你们须要将项目springmvc-chapter4/ .settings/ org.eclipse.wst.common.component下的chapter2改成chapter4,不然上下文仍是“springmvc-chapter2”。之后的每个章节都须要这么作。
package org.springframework.web.servlet.mvc; public interface Controller { ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception; }
这是控制器接口,此处只有一个方法handleRequest,用于进行请求的功能处理,处理完请求后返回ModelAndView(Model模型数据部分 和 View视图部分)。