Spring访问流程

web请求

1.浏览器将这个请求发送给服务器,服务器先查找web.xml进行匹配


Spring访问流程_第1张图片
web.xml

2.在xml文件中,通过url-pattern来匹配url,并查找到相应的servlet。然后转到对应的以-servlet.xml结尾的xml文件。


mvc-dispatcher-servlet.xml

3.在mvc-dispatcher-servlet.xml中来初始化目标路径下的beans
Spring访问流程_第2张图片
Spring访问流程_第3张图片
自动注册春天豆

4.进入控制器类

Spring访问流程_第4张图片
HelloController

@Controller 表明这是一个控制器类,当有@Controller注解的控制器收到一个请求时,它会寻找一个合适的handler方法去处理这个请求。
@RequestMapping表明这是一个handler方法,处理相应的请求。
ModelView
Spring 2.0 定义了一个 org.springframework.ui.ModelMap 类,它作为通用的模型数据承载对象,传递数据供视图所用。我们可以在请求处理方法中声明一个 ModelMap 类型的入参,Spring 会将本次请求模型对象引用通过该入参传递进来,这样就可以在请求处理方法内部访问模型对象了
return “hello”
handler方法处理完请求后,它把控制权委托给视图名与handler方法返回值相同的视图。一个handler方法的返回值并不代表一个视图的实现而是一个逻辑视图,即没有任何文件扩展名。你可以将这些逻辑视图映射到正确的实现,并将这些实现写入到上下文文件,这样你就可以轻松的更改视图层代码甚至不用修改请求handler类的代码。
![渲染上文返回的逻辑视图]]( http://upload-images.jianshu.io/upload_images/663696-0ae6887d46042285.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
5.为一个逻辑名称匹配正确的文件是视图解析器的责任。一旦控制器类已将一个视图名称解析到一个视图实现。它会根据视图实现的设计来渲染对应对象。

你可能感兴趣的:(Spring访问流程)