SpringMvc快速入门:理解DispatcherServlet与HandlerMapping

需积分: 9 8 下载量 171 浏览量 更新于2024-09-10 收藏 48KB DOC 举报
Spring MVC是一个基于模型-视图-控制器(Model-View-Controller, MVC)架构的轻量级Web应用程序框架,它是Spring框架的重要组成部分,旨在简化Web开发过程。本文将带你快速入门Spring MVC,了解其工作原理以及核心组件。 首先,Spring MVC的核心组件是`DispatcherServlet`。当用户在浏览器中输入URL并发起HTTP请求时,这些请求会被`DispatcherServlet`捕获。`web.xml`文件中的配置示例展示了如何定义和初始化`DispatcherServlet`,如: ```xml <servlet> <servlet-name>httpInvoke-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>httpInvoke-dispatcher</servlet-name> <url-pattern>*.service</url-pattern> </servlet-mapping> ``` `*.service`是约定的URL模式,表示所有以`.service`结尾的请求都将被这个`DispatcherServlet`处理。另一个`servlet-mapping`配置用于处理`.do`结尾的URL: ```xml <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> ``` `HandlerMapping`接口是Spring MVC的关键接口,负责将HTTP请求映射到对应的处理器(Controller)。有多种实现方式: 1. SimpleUrlHandlerMapping:这是最基础的实现,它通过XML配置文件中的`<url-pattern>`来指定一个URL与Controller的对应关系。例如,如果配置了`/hello.service`映射到`HelloController`,那么访问`/hello.service`时,就会调用对应的Controller方法。 2. DefaultAnnotationHandlerMapping:更高级的实现是利用注解,如`@RequestMapping`,将URL自动映射到带有注解的Controller类或方法上。这种方式提供了更大的灵活性和自动化,无需显式地在配置文件中列出所有的映射关系。 `dispatcherServlet-servlet.xml`文件则是Spring MVC配置的一部分,用于配置`AnnotationHandlerMapping`解析器,该解析器负责识别和解析带有注解的Controller。例如: ```xml <bean class="org.springframework.web.servlet.config.annotation.WebMvcConfigurer"> <property name="annotationDriven"> <value>true</value> </property> </bean> ``` 这行配置开启Spring MVC的注解驱动模式,使得Spring能够自动扫描带有`@Controller`、`@RequestMapping`等注解的类和方法,进行自动映射。 总结来说,Spring MVC通过`DispatcherServlet`接收和处理HTTP请求,`HandlerMapping`接口及其实现(如`SimpleUrlHandlerMapping`和`DefaultAnnotationHandlerMapping`)负责请求与Controller之间的映射。同时,`dispatcherServlet-servlet.xml`的配置确保了注解驱动的Controller能够被正确识别和执行。掌握这些核心概念后,你就能开始构建基于Spring MVC的动态Web应用了。