SpringMvc小结

什么是SpringMvc

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

SpingMvc的作用

  • 让我们能非常简单的设计出干净的Web 层和薄薄的Web 层;

  • 进行更简洁的Web 层的开发;请求参数是映射到方法的参数上

  • 天生与Spring框架集成(如IoC容器、AOP等);

  • 提供强大的约定大于配置的契约式编程支持;

  • 能简单的进行Web 层的单元测试;

  • 支持灵活的URL到页面控制器的映射;

  • 非常容易与其他视图技术集成,如Velocity、FreeMarker 等等,因为模型数据不放在特定的API 里,而是放在一个Model里(Map 数据结构实现,因此很容易被其他框架使用);

  • 非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API;

  • 提供一套强大的JSP标签库,简化JSP开发;

  • 支持灵活的本地化、主题等解析;

  • 更加简单的异常处理;

  • 对静态资源的支持;

  • 支持Restful风格。

SpringMvc 的执行流程

在这里插入图片描述

1.用户发送请求至前端控制器DispatcherServlet:当用户在浏览器中输入URL,并发送请求时,请求会被发送至前端控制器DispatcherServlet,它是SpringMVC的核心组件。

2.DispatcherServlet调用HandlerMapping处理器映射器:DispatcherServlet会调用处理器映射器HandlerMapping,它负责根据请求的URL找到对应的处理器(Controller)。

3.处理器映射器生成处理器对象和处理器拦截器:处理器映射器根据请求的URL找到具体的处理器(Controller),同时也可能会生成相关的处理器拦截器(如果有的话),然后将处理器对象和拦截器返回给DispatcherServlet。

4.DispatcherServlet通过HandlerAdapter处理器适配器调用处理器:DispatcherServlet会将请求交给处理器适配器HandlerAdapter,该适配器将根据不同的处理器类型来调用相应的处理方法,也就是执行处理器(Controller)。

5.执行处理器(Controller):处理器(Controller)会根据请求的业务逻辑进行处理,并返回一个ModelAndView对象作为处理结果。

6.Controller执行完成返回ModelAndView:Controller执行完毕后,会将处理结果封装在一个ModelAndView对象中,并将其返回给HandlerAdapter。

7.HandlerAdapter将ModelAndView返回给DispatcherServlet:HandlerAdapter会将Controller执行的结果ModelAndView返回给DispatcherServlet。

8.DispatcherServlet将ModelAndView传给ViewResolver视图解析器:DispatcherServlet接收到ModelAndView后,会将其传递给视图解析器ViewResolver,它的作用是根据视图名称解析出具体的视图对象。

9.ViewResolver解析后返回具体View:视图解析器ViewResolver根据视图名称解析出具体的视图对象(View),可以是JSP页面、Thymeleaf模板等。

10.DispatcherServlet对View进行渲染视图:DispatcherServlet接收到具体的视图对象后,会进行视图的渲染,即将Controller处理结果中的模型数据填充至视图中。

11.DispatcherServlet响应用户:渲染完成后,DispatcherServlet会将视图返回给用户,用户就可以在浏览器中看到请求的结果。

总结:SpringMVC的执行流程可以概括为:用户发送请求至前端控制器DispatcherServlet,DispatcherServlet通过处理器映射器找到处理器(Controller),并通过适配器调用处理器执行业务逻辑,处理器返回处理结果给DispatcherServlet,然后DispatcherServlet通过视图解析器解析视图,最后将视图渲染后响应给用户。这个流程实现了请求的转发和处理,并将处理结果呈现给用户。

SpringMvc的常用注解

@Controller:用于标识一个控制器类,处理用户请求,并返回视图或数据。

@RequestMapping:用于映射请求URL和方法的关系。可以用在控制器类上,表示该类处理的请求的根路径;也可以用在控制器方法上,表示该方法处理的请求的具体路径。

@RequestParam:用于绑定请求参数到方法参数上。可以指定请求参数的名称,也可以指定是否必须存在。

@ResponseBody:用于将方法的返回值直接作为响应体返回给客户端,而不是作为视图解析。

@RequestBody:用于将请求体的内容绑定到方法参数上。

@RequestHeader:用于获取请求头中的值。

总结

 Spring MVC是一个基于Java的Web应用开发框架,它是Spring框架的一部分。它通过MVC(Model-View-Controller)的设计模式将应用程序的逻辑层、展示层和数据层分离,提供了一种结构清晰、易于维护的开发方式。

Spring MVC的核心组件包括控制器(Controller)、视图(View)和模型(Model):

控制器负责接收用户请求,处理业务逻辑,并将处理结果发送给视图进行展示。
视图负责将处理结果呈现给用户,一般为HTML页面或者JSON/XML数据。
模型表示应用程序的数据,可以是数据库中的数据,也可以是由控制器处理后的数据。
Spring MVC的工作流程如下:

客户端发送请求到DispatcherServlet。
DispatcherServlet根据请求的URL选择一个或多个HandlerMapping来确定请求的处理器(Controller)。
HandlerMapping将请求传递给Controller。
Controller处理请求,并将处理结果封装为ModelAndView对象。
ModelAndView对象被传递给适当的ViewResolver来渲染视图。
渲染后的视图返回给客户端。
Spring MVC的优点:

松耦合:Spring MVC采用了面向接口的编程方式,使得控制器、视图和模型之间的耦合度较低,方便模块的替换和重用。
灵活性:Spring MVC提供了灵活的配置方式,可以通过XML配置文件或者注解来配置控制器和视图。
易于测试:Spring MVC的控制器和模型可以进行单元测试,方便开发人员编写和执行测试用例。
强大的拓展性:Spring MVC是基于Servlet的,可以与其他框架和技术进行集成,如Spring、MyBatis等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值