SpringMVC的流程图解读
1、用户发送出请求到前端控制器DispatcherServlet。
2、DispatcherServlet收到请求调用HandlerMapping(处理器映射器)。
3、HandlerMapping找到具体的处理器(可查找xml配置或注解配置),生成处理器对象及处理器拦截器 (如果有),再一起返回给DispatcherServlet。
4、DispatcherServlet调用HandlerAdapter(处理器适配器)。
5、HandlerAdapter经过适配调用具体的处理器(Handler/Controller)。
6、Controller执行完成返回ModelAndView对象。
7、HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet。
8、DispatcherServlet将ModelAndView传给ViewReslover(视图解析器)。
9、ViewReslover解析后返回具体View(视图)。
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。 1
11、DispatcherServlet响应用户。
springmvc
常用到的注解,作用是什么,原理。
@Controller
注解
是在
Spring
的
org.springframework.stereotype
包下,
org.springframework.stereotype.Controller
注
解类型用于指示
Spring
类的实例是一个控制器
使用
@Controller
注解的类不需要继承特定的父类或者实现特定的接口,相对之前的版本实现
Controller
接口变的更加简单。
而
Controller
接口的实现类只能处理一个单一的请求动作,而
@Controller
注解注解的控制器可以同时支
持处理多个请求动作,使程序开发变的更加灵活。
@Controller
用户标记一个类,使用它标记的类就是
一个
Spring MVC Controller
对象,即:一个控制器类。
Spring
使用扫描机制查找应用程序中所有基于注
解的控制器类,分发处理器会扫描使用了该注解的方法,并检测该方法是否使用了
@RequestMapping
注解,而使用
@RequestMapping
注解的方法才是真正处理请求的处理器。为了保证
Spring
能找到控制
器,我们需要完成两件事:
@RequestParam
注解
下面来说
org.springframework.web.bind.annotation
包下的第三个注解,即:
@RequestParam
注解,
该注解类型用于将指定的请求参数赋值给方法中的形参。那么
@RequestParam
注解有什么属性呢?它
有
4
种属性,下面将逐一介绍这四种属性:
1
、
name
属性该属性的类型是
String
类型,它可以指定请求头绑定的名称;
2
、
value
属性该属性的类型是
String
类型,它可以设置是
name
属性的别名;
3
、
required
属性该属性的类型是
boolean
类型,它可以设置指定参数是否必须绑定;
4
、
defalutValue
属性该属性的类型是
String
类型,它可以设置如果没有传递参数可以使用默认值。
@PathVaribale
注解
下面来说
org.springframework.web.bind.annotation
包下的第四个注解,即:
@PathVaribale
注解,
该注解类型可以非常方便的获得请求
url
中的动态参数。
@PathVaribale
注解只支持一个属性
value
,类型
String
,表示绑定的名称,如果省略则默认绑定同名参数。