SpringMVC优点:
- 不局限于jsp,支持多种视图技术(jsp,freemarker,pdf)。
- 清晰的角色分配
- 属于Spring全家桶一员
- 支持各种请求资源的映射策略
SpringMVC的重定向与转发:
重定向:在返回值前面加"redirect:",如"redirect:http://www.baidu.com"
转发:在返回值前面加"forward:",如"forward:user.jsp?name=lisi"
SpringMVC处理流程中的几个重要对象:
DispatcherServlet(前端控制器)
HandlerMapping(处理器映射器)
Handler(处理器)
HandlerAdapter(处理器适配器)
ViewResolver(视图解析器)
View(视图)
处理流程图:
再用文字来说明下:
首先:客户端发送请求,当前端控制器(DispatcherServlet)收到请求后,调用处理器映射器(HandlerMapping)请求获取Handler,处理器映射器(HandlerMapping)通过url、handler所在的Bean的name属性的值与class属性的值找到执行类Handler。然后将具体执行的处理器(Handler)和拦截器(interceptor,如果有的话)返回给前端控制器(DispatcherServlet)。
再:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)请求获取 适配器(Adapter),适配器调用方法通过处理器(Handler)处理业务逻辑,返回ModelAndView(model数据与view视图名)给前端控制器(DispatcherServlet)。
接着:前端控制器(DispatcherServlet)调用视图解析器(ViewResolver)通过视图名找到解析视图进行解析,返回真正的视图对象给前端控制器(DispatcherServlet)。
然后:前端控制器(DispatcherServlet)对视图进行渲染,得到渲染后的视图。
最后:将响应请求发送给客户端。