struts2和springMVC框架的比较
来源:互联网 发布:js常用正则表达式 编辑:程序博客网 时间:2024/06/07 09:41
struts2和SpringMVC同是mvc框架,它们有什么不同?首先看一张图:
它们都用核心分发器等相同的组件,但是它们还是不一样的。
第一、MVC框架的出现是为了将URL从HTTP的世界中映射到JAVA世界中,这是MVC框架的核心功能。而在URL这一点SpringMVC无疑更加优雅。
第二、从设计实现角度来说,我觉得SpringMVC更加清晰。即使我们去对比Struts2的原理图和SpringMVC的类图,它依然很让人困惑,远没有SpringMVC更加直观:
看它们的处理流程如下:
SpringMVC设计思路:将整个处理流程规范化,并把每一个处理步骤分派到不同的组件中进行处理。
这个方案实际上涉及到两个方面:
处理流程规范化 —— 将处理流程划分为若干个步骤(任务),并使用一条明确的逻辑主线将所有的步骤串联起来
处理流程组件化 —— 将处理流程中的每一个步骤(任务)都定义为接口,并为每个接口赋予不同的实现模式
处理流程规范化是目的,对于处理过程的步骤划分和流程定义则是手段。因而处理流程规范化的首要内容就是考虑一个通用的Servlet响应程序大致应该包含的逻辑步骤:
步骤1—— 对Http请求进行初步处理,查找与之对应的Controller处理类(方法) ——HandlerMapping
步骤2—— 调用相应的Controller处理类(方法)完成业务逻辑 ——HandlerAdapter
步骤3—— 对Controller处理类(方法)调用时可能发生的异常进行处理 ——HandlerExceptionResolver
步骤4—— 根据Controller处理类(方法)的调用结果,进行Http响应处理 ——ViewResolver
正是这基于组件、接口的设计,支持了SpringMVC的另一个特性:行为的可扩展性。
机制上:
struts2是类级别的拦截, 一个类对应一个request上下文, struts是在接受参数的时候,可以用属性来接受参数, 这就说明参数是让多个方法共享的,这也就无法用注解或其他方式标识其所属方法了
配置:
- struts2和springMVC框架的比较
- 【SpringMVC和Struts2的比较】
- SpringMVC和struts2的比较
- SpringMVC和 Struts2的比较
- Struts2和SpringMVC的比较
- SpringMVC和Struts2的比较
- SpringMVC和Struts2的区别和比较
- SpringMVC和Struts2比较
- SpringMVC和Struts2比较
- SpringMVC和Struts2比较
- SpringMVC和Struts2比较
- SpringMVC和Struts2比较
- 比较springmvc和struts2
- Struts2和SpringMVC比较
- SpringMvc和Struts2 比较
- SpringMVC和Struts2的比较的优点
- SpringMVC和Struts2的比较的优点
- SpringMVC和Struts2的比较的优点
- 面试题1(转)
- poj 3667 Hotel(线段树中级,区间合并)
- Qt中forward declaration of struct Ui::xxx的解决
- 2D Transformations
- iso隐藏键盘的方法
- struts2和springMVC框架的比较
- 博客生命
- 进程的优先级&为什么使用服务
- SQL中CONVERT转化函数的用法
- spring 源码解读与设计详解:5 XmlBeanDefinitionReader与Resource
- 符合主键在项目中的实际应用
- Volley
- Android判断应用是否在前台或后台
- Android中缩略图问题——缓存问题