为什么要使用SpringMVC?


很多应用程序的问题在于处理业务数据的对象和显示业务数据的视图之间存在紧密耦合,通常,更新业务对象的命令都是从视图本身发起的,使视图对任何业务对象更改都有高度敏感性。而且,当多个视图依赖于同一个业务对象时是没有灵活性的。

SpringMVC是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦。基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringMVC也是要简化我们日常Web开发。

MVC设计模式
MVC设计模式的任务是将包含业务数据的模块与显示模块的视图解耦。这是怎样发生的?在模型和视图之间引入重定向层可以解决问题。此重定向层是控制器,控制器将接收请求,执行更新模型的操作,然后通知视图关于模型更改的消息。
具体流程:

(1)首先浏览器发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;

(2)DispatcherServlet——>HandlerMapping,处理器映射器将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象、多个HandlerInterceptor拦截器)对象;

(3)DispatcherServlet——>HandlerAdapter,处理器适配器将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;

(4)HandlerAdapter——>调用处理器相应功能处理方法,并返回一个ModelAndView对象(包含模型数据、逻辑视图名);

(5)ModelAndView对象(Model部分是业务对象返回的模型数据,View部分为逻辑视图名)——> ViewResolver, 视图解析器将把逻辑视图名解析为具体的View;

(6)View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构;
HandlerMapping
处理器映射器将会把请求映射为 HandlerExecutionChain 对象(包含一个 Handler 处理器对象、多个 HandlerInterceptor 拦截器)对象,通过这种策略模式,很容易添加新的映射策略。

处理器映射器有三种,三种可以共存,相互不影响,分别是BeanNameUrlHandlerMapping、SimpleUrlHandlerMapping和ControllerClassNameHandlerMapping;

BeanNameUrlHandlerMapping

默认映射器,即使不配置,默认就使用这个来映射请求。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringMVC是一种基于Java的Web框架,它提供了一种用于构建Web应用程序的模型-视图-控制器(MVC)架构。下面是SpringMVC的工作流程: 1. 客户端发送请求:客户端通过浏览器发送HTTP请求到服务器。 2. DispatcherServlet接收请求:DispatcherServlet是SpringMVC的核心控制器,它接收所有的请求,并将请求分发给相应的处理器。 3. 处理器映射器进行映射:处理器映射器根据请求的URL找到对应的处理器(Controller)。 4. 处理器执行请求:处理器执行请求,并返回一个ModelAndView对象,其中包含模型数据和视图名称。 5. 视图解析器解析视图:视图解析器将视图名称解析为实际的视图对象。 6. 视图渲染:视图对象将模型数据渲染到响应中,生成最终的HTML页面。 7. 响应返回给客户端:最终生成的HTML页面作为HTTP响应返回给客户端,客户端浏览器将其显示出来。 SpringMVC的优点和需要使用的原因如下: 1. 松耦合:SpringMVC采用了MVC设计模式,将应用程序分为模型、视图和控制器,使得各个组件之间解耦,提高了代码的可维护性和可测试性。 2. 灵活性:SpringMVC提供了丰富的配置选项和扩展点,可以根据项目需求进行灵活配置和定制。 3. 易于集成:SpringMVC可以与其他Spring框架(如Spring Boot、Spring Security等)无缝集成,提供了全面的Web开发解决方案。 4. 强大的功能:SpringMVC提供了很多功能,如请求映射、数据绑定、表单验证、拦截器、国际化支持等,可以满足各种Web应用程序的需求。 5. 社区支持:SpringMVC是一个非常流行的Java Web框架,有庞大的开发者社区和丰富的文档资源,可以方便地获取帮助和学习资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值