什么是MVC?
先说说MVC三层架构,这个部分所做的工作其实就是连接:
从JavaWeb到SpringMVC
先回顾一下JavaWeb的创建:通过继承HttpServlet重写doGet和doPost方法来编写Servlet,然后在web.xml中注册servlet,不同的功能对应着不同的servlet
以http://localhost:8080/hello为例
- 在SpringMVC,所有的servlet请求都要经过dispatcherServlet
- /hello经过dispatcherServlet交给HandlerMapping去查找/hello对应的处理类(在javaweb中叫servlet,在springmvc中叫Controller)
- 查找到了之后交由适配器处理,以Controller的具体格式去匹配这个指定的类
- 然后执行Controller,从数据库获取数据,返回数据和指定页面
- 在向视图解析器(ViewResolver)传的过程中,传递的信息中包括了获取的数据、目标页面名
- 经过视图解析器的解析拼接成跳转的页面,经过转发或重定向进行跳转
注:
- 在使用了dispatcherServlet之后,只有dispatcherServlet需要在web.xml中绑定,其他的请求以其他方式绑定
- 在使用非注解方式实现时,需要在spring中进行绑定;而使用注解,则直接使用注解绑定
- 可以参考另一篇文章,快速搭建SpringMVC项目,通过实践加深理解
参考理解
1.dispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发送请求,dispatcherServlet接收拦截请求。
2.dispatcherServlet在收到url请求后交由HandlerMapping进行映射,HandlerMapping根据url请求查找Handler(可理解为注册的servlet)。
3.HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,将解析后的信息返回给dispatcherServlet(如:解析控制器映射)。
4.HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。
5.Handler让具体的Controller去执行,将具体的执行信息(调用业务得到的结果)返回给HandlerAdapter(如ModelView)再传至dispatcherServlet。
6.dispatcherServlet调用视图解析器(ViewResolver)来解析传来的视图名(hello->/jsp/hello.jsp)并将解析的视图名返回给dispatcherServlet,dispatcherServlet再调用具体的视图呈现ModelView中的数据
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。