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框架中,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
cjavaxml相关文章
- Spring学习笔记(九)——SpringMVC实现文件上传
- Springmvc工作原理详解
- SpringMvc—拦截器「建议收藏」
- SpringMvc的工作原理
- 理论:第五章:Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点
- SpringMVC的工作原理
- SpringMvc(五) - 支付宝沙箱和关键字过滤,md5加密,SSM项目重要知识点
- springmvc笔记_SpringMVC优点
- SpringMVC执行流程
- 理论:第五章:Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的
- Java项目:CRM客户关系管理系统(Spring+SpringMVC+MyBatis + maven)
- JAVAEE——SpringMVC第一天:介绍、入门程序、架构讲解、SpringMVC整合MyBatis、参数绑定、SpringMVC和Struts2的区别详解编程语言
- springmvc工具类封装RowMapper详解编程语言
- springmvc+maven框架介绍详解编程语言
- springmvc 返回json数据给前台jsp页面展示详解编程语言
- SSM三大框架整合(Spring+SpringMVC+MyBatis)详解编程语言
- Nginx反向代理+Tomcat+Springmvc获取用户访问ip详解编程语言