Spring MVC入门:创建Controller及DispatcherServlet配置

需积分: 9 1 下载量 157 浏览量 更新于2024-08-18 收藏 67KB PPT 举报
"创建Controller控制器-Spring_Framework_MVC应用程序开发简介" 在Spring Framework的MVC模块中,Controller是核心组件之一,用于处理来自客户端的Web请求并生成响应。本教程将详细介绍如何创建Controller控制器以及Spring MVC应用程序的基本架构。 首先,让我们看看一个简单的Controller实现。在提供的代码示例中,`SpringappController` 类实现了 `Controller` 接口: ```java import org.springframework.web.servlet.mvc.Controller; import org.springframework.web.servlet.ModelAndView; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class SpringappController implements Controller { public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { return new ModelAndView("hello"); } } ``` `Controller` 接口仅包含一个方法 `handleRequest()`,该方法接收 `HttpServletRequest` 和 `HttpServletResponse` 对象作为参数,这两个对象分别代表HTTP请求和响应。`handleRequest()` 方法的职责是处理请求,并返回一个 `ModelAndView` 对象,其中包含了视图名称和模型数据。 `ModelAndView` 是Spring MVC中用于封装处理结果的类,它包含两个主要部分:模型数据(model)和视图名称(view name)。在这个例子中,`"hello"` 是视图名称,通常对应一个JSP页面或FreeMarker模板。 Spring MVC的Web框架设计基于请求驱动,其核心是 `DispatcherServlet`。`DispatcherServlet` 是一个中央Servlet,它扮演着请求分发者的角色,将请求转发给合适的处理器。`DispatcherServlet` 从 `HttpServlet` 继承,需要在 `web.xml` 配置文件中声明和配置。 在 `web.xml` 中配置 `DispatcherServlet` 如下: ```xml <web-app> <servlet> <servlet-name>mall</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mall</servlet-name> <url-pattern>*.form</url-pattern> </servlet-mapping> </web-app> ``` 在这个配置中,`servlet-name` 指定了Servlet的名称,`servlet-class` 是 `DispatcherServlet` 的全限定类名,`load-on-startup` 指定Servlet在应用启动时加载的顺序。`url-pattern` 定义了哪些请求应该被这个Servlet处理,这里配置为所有以 `.form` 结尾的请求。 Spring MVC 提供了多种控制器的实现,如 `AbstractController`、`AbstractCommandController` 和 `SimpleFormController`,它们提供了更多的功能和便利性,可以根据实际需求选择合适的控制器基类来继承。 在实际开发中,通常不会直接实现 `Controller` 接口,而是使用Spring提供的其他控制器类型,例如 `@Controller` 注解的类,这是一种基于注解的编程方式,更加简洁且易于维护。在这些类中,可以使用 `@RequestMapping` 注解来指定处理的HTTP请求方法和URL路径,以及 `@ModelAttribute`、`@RequestParam` 等注解来获取请求参数。 总结来说,Spring MVC中的Controller负责处理Web请求,`DispatcherServlet` 负责请求的分发。开发者可以通过实现Controller接口或使用注解的方式创建控制器,结合Spring提供的其他工具和组件,构建出强大的Web应用程序。理解并熟练掌握这些基础概念和组件,对于开发高质量的Spring MVC应用至关重要。