springmvc简介
文章出处:http://www.nexussmartsolutions.com 作者:兴邦开发部 人气: 发表时间:2016年03月18日
springmvc简介
Spring为展现层提供了一个优秀的Web框架--Spring mvc。和众多其他Web框架一样,它基于MVC设计理念。
Spring MVC框架围绕DispacherServlet这个核心展开,DispatcherServlet是Spring mvc的总导演,总策划,它负责截获请求并将其分派给相应的处理器处理。Spring mvc框架包括注解驱动控制器,请求及响应的信息处理,试图解析,本地化解析,上传文件解析,异常处理以及表单标签绑定等内容。
和大多数Web mvc框架一样,SpringMVC通过一个前端Servlet接收所有请求,并将具体工作委托给其他组件进行处理,DispatcherServlet就是Spring mvc的前端Servlet。下面对Spring mvc处理请求做一个概述:
1:整个过程始于客户端发出一个HTTP请求,Web应用服务器接收到这个请求,如果匹配DispatcherServlet的请求映射路径(web.xml下指定),Web容器将该请求转交给DispatcherServlet处理。
2:DispatcherServlet接收到请求后,将根据请求信息(包括URL,HTTP方法等)及HandlerMapping的配置找到处理请求的处理器(Handler)。可将HandlerMapping看成是路由器,将Handler看成是目标主机。值得注意的是:Spring mvc中并没有定义一个Handler接口,实际上任何一个Object都可以成为请求的处理器。
3:当DispatcherServlet根据HandlerMapping得到对应当前请求的Handler后,通过HandlerAdapter的Handler进行封装,再以统一的适配器接口调用Handler。HandlerAdapter是Spring mvc的框架级接口,顾名思义HandlerAdapter是一个适配器,它用统一的接口对各种Handler方法进行调用。
4:处理器完成业务逻辑的处理后将返回一个ModelAndView给DsipatcherServlet,ModelAndView包含了试图逻辑名和模型数据信息。
5:ModelAndView中包含的是“逻辑试图名”而非真正的视图对象,DispatcherServlet借由ViewResolver完成逻辑试图名到真是试图对象的解析工作。
6:当得到真实的视图对象view后DispatcherServlet就使用这个View对象对ModelAndView中的模型数据进行试图渲染。
7:最终客户端得到的相应消息,可能是一个普通的HTML页面,也可能是一个XML或JSON串,甚至是一张图片或一个PDF文档等不同的媒体形式。
以上每一步骤都包含着丰富的知识点。但是第一部都是要配置好在web.xml中DispatcherServlet,让Spring mvc的心脏跳动起来。