当前位置:首页 > 科技 > 正文

spring mvc 流程,springmvc常用注解

spring mvc 流程,springmvc常用注解

大家好,今天给各位分享spring mvc 流程的一些知识,其中也会对springmvc常用注解进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本...

大家好,今天给各位分享spring mvc 流程的一些知识,其中也会对springmvc常用注解进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

spring的工作流程

spring工作的流程

流程如下:

1、用户发起请求到前端控制器(DispatcherServlet),该控制器会过滤出哪些请求可以访问Servlet、哪些不能访问。就是url-pattern的作用,并且会加载springmvc.xml配置文件。

2、前端控制器会找到处理器映射器(HandlerMapping),通过HandlerMapping完成url到controller映射的组件,简单来说,就是将在springmvc.xml中配置的或者注解的url与对应的处理类找到并进行存储,用map<url,handler>这样的方式来存储。

3、HandlerMapping有了映射关系,并且找到url对应的处理器,HandlerMapping就会将其处理器(Handler)返回,在返回前,会加上很多拦截器。

4、DispatcherServlet拿到Handler后,找到HandlerAdapter(处理器适配器),通过它来访问处理器,并执行处理器。

5、执行处理器

6、处理器会返回一个ModelAndView对象给HandlerAdapter

7、通过HandlerAdapter将ModelAndView对象返回给前端控制器(DispatcherServlet)

8、前端控制器请求视图解析器(ViewResolver)去进行视图解析,根据逻辑视图名解析成真正的视图(jsp),其实就是将ModelAndView对象中存放视图的名称进行查找,找到对应的页面形成视图对象

9、返回视图对象到前端控制器。

10、视图渲染,就是将ModelAndView对象中的数据放到request域中,用来让页面加载数据的。

11、通过第8步,通过名称找到了对应的页面,通过第10步,request域中有了所需要的数据,那么就能够进行视图渲染了。最后将其返回即可。

Spring MVC原理是什么

SpringMVC是一种基于Java的Web应用框架,它的原理是基于MVC(Model-View-Controller)设计模式。MVC是一种常用的Web应用程序架构,它将Web应用程序分为三个组件:模型(Model)、视图(View)和控制器(Controller)。

SpringMVC的原理可以概括为以下几个步骤:

1.用户发送请求:首先,用户在浏览器中输入URL,提交请求给服务器。

2.DispatcherServlet接收请求:DispatcherServlet是SpringMVC框架的核心组件,它负责接收所有的请求,并将请求委托给其他组件处理。

3.HandlerMapping处理器映射:HandlerMapping根据请求的URL路径,找到可以处理该请求的处理器(Controller)。

4.HandlerAdapter处理器适配器:HandlerAdapter将请求传递给处理器(Controller),并将处理器的响应返回给DispatcherServlet。

5.视图解析器:视图解析器将处理器的响应解析为视图(View)。

6.视图渲染器:视图渲染器将视图转换为HTML代码,并将其发送回浏览器,呈现给用户。

在SpringMVC框架中,Handler(控制器)是处理请求的核心组件,它通过注解或配置文件的方式将请求映射到相应的处理方法上。同时,SpringMVC还提供了丰富的视图解析器(ViewResolver),可以根据请求的类型(如HTML、JSON等)选择相应的视图渲染器进行渲染。

总之,SpringMVC框架采用MVC设计模式,通过DispatcherServlet、HandlerMapping、HandlerAdapter、视图解析器和视图渲染器等核心组件,实现了对Web应用程序的请求处理、响应渲染等功能。

springmvc 多步流程

工作流程(12步)

1.DispatcherServlet(前端控制器)接收用户的请求;

2.DispatcherServlet调用HandlerMapping(处理器映射器),找到合适的Handler;

3.HandlerMapping(处理器映射器)返回HandlerExecutionChain(合适的Handler的位置)给DispatcherServlet;

4.发送请求到HandlerAdapter(处理器适配器)(打一个比方:家用电的电压为220V,我们的电脑或手机所需要的电压各不相同,所以就需要有电源适配器来起到桥梁作用,这里的处理器适配器也是同样的作用);

5.HandlerAdapter(处理器适配器)将请求交给Handler(处理器)去执行;

6.Handler(处理器)执行请求,并将处理后的结果封装成为一个ModelAndView对象,返回给HandlerAdapter(处理器适配器);

7.HandlerAdapter(处理器适配器)将ModelAndView对象返回给DispatcherServlet;

8.DispatcherServlet调用InternalResourceViewResolver(视图解析器)请求视图解析;

9.InternalResourceViewResolver(视图解析器)解析视图后返回给DispatcherServlet;

10.DispatcherServlet请求渲染视图;

11.View(视图)将渲染好的视图返回给DispatcherServlet;

12.DispatcherServlet响应用户的请求。

mvc操作流程

SpringMVC工作流程描述:

1.用户向服务器发送请求,请求被Spring前端控制ServeltDispatcherServlet捕获;

2.DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;

3.DispatcherServlet根据获得的Handler,选择一个合适的HandlerAdapter;

4.提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。

在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:

HttpMessageConveter:将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息。

数据转换:对请求消息进行数据转换。如String转换成Integer、Double等。

数据根式化:对请求消息进行数据格式化。如将字符串转换成格式化数字或格式化日期等。

数据验证:验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中。

5.Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象;

6.根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet;

7.ViewResolver结合Model和View,来渲染视图;

8.将渲染结果返回给客户端。

springboot和springmvc区别

springboot和springmvc区别:

springboot只是一个配置工具,整合工具,辅助工具.

springmvc是框架,项目中实际运行的代码

Spring框架就像一个家族,有众多衍生产品例如boot、security、jpa等等。但他们的基础都是Spring的ioc和aop,ioc提供了依赖注入的容器,aop解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。

SpringMVC提供了一种轻度耦合的方式来开发web应用。它是Spring的一个模块,是一个web框架。通过DispatcherServlet,ModelAndView和ViewResolver,开发web应用变得很容易。解决的问题领域是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。

SpringBoot实现了自动配置,降低了项目搭建的复杂度。它主要是为了解决使用Spring框架需要进行大量的配置太麻烦的问题,所以它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson,JDBC,Mongo,Redis,Mail等等),SpringBoot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box)。

SpringBoot只是承载者,辅助你简化项目搭建过程的。如果承载的是WEB项目,使用SpringMVC作为MVC框架,那么工作流程和你上面描述的是完全一样的,因为这部分工作是SpringMVC做的而不是SpringBoot。

对使用者来说,换用SpringBoot以后,项目初始化方法变了,配置文件变了,另外就是不需要单独安装Tomcat这类容器服务器了,maven打出jar包直接跑起来就是个网站,但你最核心的业务逻辑实现与业务流程实现没有任何变化。

总结:

Spring最初利用“工厂模式”(DI)和“代理模式”(AOP)解耦应用组件。大家觉得挺好用,于是按照这种模式搞了一个MVC框架(一些用Spring解耦的组件),用开发web应用(SpringMVC)。然后发现每次开发都写很多样板代码,为了简化工作流程,于是开发出了一些“懒人整合包”(starter),这套就是SpringBoot。

所以,用最简练的语言概括就是:

Spring是一个“引擎”;

SpringMVC是基于Spring的一个MVC框架;

SpringBoot是基于Spring4的条件注册的一套快速开发整合包。

好了,关于spring mvc 流程和springmvc常用注解的问题到这里结束啦,希望可以解决您的问题哈!

最新文章