SpringMVC工作原理详解编程语言

一:SpringMVC流程框架总体介绍?

SpringMVC属于SpringFrameWork的后续产品,已经融合在spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能MVC 模块,其功能和Strtus2,Struts1是类似的,只不过是实现的原理不同而已。其中Struts2是通过过滤器来实现路劲和action的映射等控制流转功能,而Struts1和SpringMVC则是通过最传统的servlet来实现对其代码封装的,但是都是非常相似的MVC流程框架。

SpringMVC是一个MVC的流程框架,同样适用在我们的表现层到action模块中,是MVC架构模式中真正的Controller。SpringMVC在流程处理方面更加灵活,可以很容易的进行扩展,可以和Spring框架进行无缝集成。但是SpringMVC有侵入性,action需要继承框架指定的类,或者实现指定的接口,它提供了构建 Web 应用程序的全功能 MVC 模块。

springmvc实现原理图:

SpringMVC工作原理详解编程语言

看到如上图则总结下springmvc工作原理:

在整个springMVC框架中,dispatcherServlet处于核心位置,负责协调和组织不同组件以完成请求处理并返回响应工作

1.客户端发送一个请求匹配dispatcherServlet的请求映射路径(web.xml),web容器将该请求转交给dispatcherServlet处理。

2.dispatcherServlet接收到请求后,将请求信息(包括url,http,请求头,请求参数,cook等)以及HandlerMapping的配置找到处理请求的处理器Handler

3.dispatcherServlet根据HandlerMapping得到对应请求的Handler后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler。

4.处理器完成业务逻辑的处理后将返回一个ModelAndView给dispatcherServlet,ModelAndView包含视图逻辑名和模型数据信息。

5.dispatcherServlet借助ViewResoler完成逻辑视图名到真实视图对象的解析。

6.得到真实视图对象后,dispatcherServlet使用这个view对ModelAndView中的模型数据进行视图渲染。

二:springmvc重要接口介绍?

DispatcherServlet:前端控制器,用于接收请求,springmvc核心
HandlerMapping接口:用于处理请求的映射。
DefaultAnnotationHandlerMapping:HandlerMapping接口的实现,用于把一个URL映射到具体的Controller类上。
HandlerAdapter接口:用于处理请求的映射。
AnnotationMethodHandlerAdapter:HandlerAdapter接口的实现,用于把一个URL映射到对应Controller类的某个方法上。
ViewResolver接口:用于解析View。
InternalResourceViewResolver:ViewResolver接口的实现,用于把ModelAndView的逻辑视图名解析为具体的View。

三:springmvc与struts2比较?

1.springmvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,一个方法对应一个request上下文,而方法同时又跟一个url对应,而struts2是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入,struts2中一个Action对象对应一个request上下文,struts2中action一个方法对应一个url,但是其类的属性被所有方法所共享。
2.springmvc的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,方法之间不共享变量。而struts2虽然方法之间也是独立的,但其所有Action变量是共享的,这不会影响程序运行,却给我们编码读程序时带来麻烦。
3.springmvc的验证也是一个亮点,支持JSR303,[email protected]后直接返回响应文本即可。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/11200.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论