SpringMVC工作流程,即从浏览器请求到服务器响应的具体过程

目录

1、什么是SpringMVC? 

2、SpringMVC工作流程

3、DAO层、Service层、Controller层、View层 


1、什么是SpringMVC? 

SpringMVC也是一种MVC架构模式,是Spring中内容。属于轻量级,简单灵活,与Spring兼容性好,功能更加强大(高效)。

MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。

MVC将业务逻辑、数据、显示等分离开的方式去组织代码。

MVC主要作用是降低视图与业务逻辑间的双向耦合。

MVC不是一种设计模式,是一种架构模式。当前不同的MVC存在差异。

职责分析:

(1)Model:模型

  • 业务逻辑
  • 保存数据的状态

(2)View:视图

  • 显示页面

(3)Controller:控制器

  • 取得表单数据
  • 调用业务逻辑
  • 转向指定的页面

2、SpringMVC工作流程

说起SpringMVC框架的使用,不得不提起配置SpringMVC过程中,核心配置文件springmvc.xml中的三要素:处理器映射器(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(View Resolver)。

Spring的web框架围绕着前端控制器DispatcherServlet设计。

SpringMVC框架像许多MVC架构模式一样,以请求为驱动,围绕着前端控制器DispatcherServlet分派请求及提供其他功能,Dispatcher是一个实际的Servlet(继承在HttpServlet基类)。

知道上述四点,再去理解SpringMVC工作流程就容易一些了。

解释SpringMVC工作流程:
1、用户发送请求url至前端控制器DispatcherServlet。
2、DispatcherServlet收到请求调用处理器映射器HandlerMapping。
3、处理器映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet。
4、DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter,执行HandlerAdapter处理一系列的操作,如:参数封装,数据格式转换,数据验证等操作。
5、执行处理器Handler(Controller,也叫页面控制器)。
6、Handler执行完成返回ModelAndView。
7、HandlerAdapter将Handler执行结果ModelAndView返回到DispatcherServlet。
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
9、View Reslover解析后返回具体View。
10、DispatcherServlet对View进行渲染视图(即将模型数据model填充至视图中)。
11、DispatcherServlet响应用户。

注意:5中,Controller层 调Service层(其中,Service层调用DAO层),业务层(Service层)主要涉及业务处理,数据访问层(DAO层)主要负责数据持久化的工作,用来连接数据库,完成数据的增删改查操作。

3、DAO层、Service层、Controller层、View层 

DAO层:DAO层主要是做数据持久化的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类(配置bean),然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。

Service层:Service层主要负责业务模块的逻辑应用设计。同样是首先设计接口,再设计其实现的类,接着在Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。Service层的业务实现,具体要调用到已定义的DAO层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。

Controller层:Controller层负责具体的业务模块流程的控制,在此层里面要调用Service层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。

View层:此层与控制层结合比较紧密,需要二者结合起来协同工作。View层主要负责前台jsp页面的表示。

 
参考链接1:https://www.jianshu.com/p/8a20c547e245

参考链接2:https://blog.youkuaiyun.com/weixin_39687189/article/details/110618429

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值