在最简单的SpringMVC应用程序中,控制器是唯一的你需要在java web部署描述文件(即Web.xml文件)中配置Servlet。Spring MVC控制器---通常称做DispatcherServlet,实现了前端控制器设计模式,并且每个web请求必须通过他以便它能够管理请求的生命周期。
当一个web请求发送到SpringMVC应用程序,dispatcher servlet首先接受请求,然后他组织哪些在 Spring Web应用程序上下文配置的(例如实际请求处理控制器和视图解析器)或者使用注解配置的组件,所有者这些都需要处理该请求。
在Spring3.0中定义一个控制器类,这个类必须标有@Controller注解。
当有@Controller注解的控制器收到一个请求时,它会寻找一个合适的handler方法去处理这个请求。这就需要控制器通过一个或多个handler映射去把每个请求映射到handler方法。为了这样做,一个控制器类的方法需要被@RequestMapping注解装饰,使它们成为handler方法。
handler方法处理完请求后,它把控制权委托给视图名与handler方法返回值相同的视图。为了提供一个灵活的方法,一个handler方法的返回值并不代表一个视图的实现而是一个逻辑视图,即没有任何文件扩展名。你可以将这些逻辑视图映射到正确的实现,并将这些实现写入到上下文文件,这样你就可以轻松的更改视图层代码甚至不用修改请求handler类的代码。
为一个逻辑名称匹配正确的文件是视图解析器的责任。一旦控制器类已将一个视图名称解析到一个视图实现。它会根据视图实现的设计来渲染对应对象。
时间: 2024-10-29 05:04:37