SpringMVC完全教程:URL表达式与REST风格支持

需积分: 9 5 下载量 182 浏览量 更新于2024-08-18 收藏 2.65MB PPT 举报
"本文档主要介绍了Spring MVC框架中通过URL限定进行请求映射的方法,包括Ant风格和占位符的使用。同时,提到了Spring MVC 3.0的新特性以及框架的基本结构和工作流程。此外,还展示了如何使用注解来定义控制器和处理方法的映射。" 在Spring MVC中,`@RequestMapping`注解是用于映射HTTP请求到处理方法的关键工具。它不仅支持标准的URL路径,还支持Ant风格的匹配模式和带占位符的URL。Ant风格匹配允许更灵活的URL设计,如`*`表示任意字符,`??`表示两个任意字符,而`**`表示任意数量的目录层次。 例如: - `/user/*/createUser`:这个URL表达式会匹配任何以`/user/`开头,后面跟着任意单个字符串,然后是`/createUser`的请求,如`/user/aaa/createUser`或`/user/bbb/createUser`。 - `/user/**/createUser`:这个表达式则更宽松,可以匹配`/user/createUser`或`/user/any/subdir/createUser`,其中`any`和`subdir`可以是任意字符串。 - `/user/{userId}`:这种模式下,`{userId}`是一个占位符,匹配固定格式的URL,如`/user/123`或`/user/abc`,`userId`的值可以在处理方法中获取。 - `/user/**/{userId}`:这个模式更复杂,匹配如`/user/aaa/bbb/123`这样的URL,其中`aaa`和`bbb`是任意字符串,`{userId}`则对应`123`。 Spring MVC 3.0引入了许多新特性,如对RESTful风格URL的支持,更多的注解驱动功能,HTTP输入输出转换器(HttpMessageConverter),与数据转换、格式化和验证框架的集成,对静态资源处理的优化,以及控制器方法签名的灵活性,使其可以完全独立于Servlet API。 在实际应用中,例如`UserController`的示例,通过`@Controller`注解标记类为控制器,`@RequestMapping(" /user ")`将该类映射到`/user`路径。然后,`@RequestMapping(value = "/register")`注解在`register()`方法上,表示该方法将处理所有以`/user/register`为路径的HTTP请求,并返回逻辑视图名`"user/register"`,通常这个逻辑视图名会被解析成实际的视图,如JSP页面。 整个Spring MVC框架的结构围绕`DispatcherServlet`展开,它负责调度请求。`HandlerMapping`用于映射请求到相应的处理器,`HandlerAdapter`则适配处理器方法,处理请求并返回`ModelAndView`对象,包含模型数据和视图信息。`ViewResolver`进一步解析逻辑视图名到具体视图,如JSP、XML或PDF。整个过程中,模型数据会绑定到视图,以便呈现给用户。 Spring MVC通过灵活的URL映射和注解驱动,提供了强大的Web应用程序开发能力,使得开发者能够构建出高效、模块化的Web应用。