首页技术springmvc工作流程 spring面试

springmvc工作流程 spring面试

编程之家2026-06-221175次浏览

很多朋友对于springmvc工作流程和spring面试不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

springmvc工作流程 spring面试

spring mvc的工作流程是什么

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(处理器适配器),通过它来访问处理器,并执行处理器。

springmvc工作流程 spring面试

5、执行处理器

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

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

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

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

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

springmvc工作流程 spring面试

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

spring mvc的特点及工作流程

1.他是基于组件技术的,全部是应用对象,无论是控制器或视图,还是业务对象的类都是java组件,并且和spring提供的其他基础结构紧密集成.

2.不依赖于servlet Api

3.可以使用任意一种视图技术,不仅仅是jsp.

4.支持各种请求资源的映射策略.

5.是易于扩展的.

1.用户提交请求至前端控制器DispatcharServlet

2.dispatcharServlet控制器查询一个或多个handlerMaping,找到处理请求的controller

3.dispatcharServlet控制器将请求提交到controller

4.controller进行业务逻辑处理后,返回ModelAndView对象,该对象本身包含了视图对象的信息

5.DispatcherServlet控制器查询一个或多个ViewResoler视图解析器,找到ModelAndView对象指定的视图对象.

6.视图负责将结果返回到客户端.

1.spring mvc的入口是一个servlet(即前端控制器),而strtus的入口是一个filter过滤器

2.spring mvc是基于方法开发的(即一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或者多例模式(建议单例),strtus是基于类开发的,传递参数通过类的属性,所以只能设计程多例.

java 急求SpringMVC的工作原理的解释和它的流程图

Spring工作流程描述

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

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

3.DispatcherServlet根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法)

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.将渲染结果返回给客户端。

Spring工作流程描述

为什么Spring只使用一个Servlet(DispatcherServlet)来处理所有请求?

详细见J2EE设计模式-前端控制模式

Spring为什么要结合使用HandlerMapping以及HandlerAdapter来处理Handler?

符合面向对象中的单一职责原则,代码架构清晰,便于维护,最重要的是代码可复用性高。如HandlerAdapter可能会被用于处理多种Handler。

OK,本文到此结束,希望对大家有所帮助。

ai人工智能,什么叫AI人工智能虚拟专用网络app,网络配置软件