SpringMVC与Struts2区别 |
|||
对比项目 |
SrpingMVC |
Struts2 |
优势 |
框架入口 |
基于servlet |
基于filter |
|
框架设计思想 |
控制器基于方法级别的拦截,处理器设计为单实例 |
控制器基于类级别的拦截, 处理器设计为多实例 |
由于设计本身原因,造成了Struts2,通常来讲只能设计为多实例模式,相比于springmvc设计为单实例模式,Struts2会消耗更多的服务器内存。 |
参数传递 |
参数通过方法入参传递 |
参数通过类的成员变量传递 |
Struts2通过成员变量传递参数,导致了参数线程不安全,有可能引发并发的问题。 |
与spring整合 |
与spring同一家公司,可以与spring无缝整合 |
需要整合包 |
Springmvc可以更轻松与spring整合 |
执行流程图:
1.处理器映射器
2.处理器适配器
二合一配置
<!-- 注解驱动配置,代替映射器与适配器的单独配置,同时支持json响应(推荐使用) --> <mvc:annotation-driven />
3.视图解析器
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置视图响应的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 配置视图响应的后缀 -->
<property name="suffix" value=".jsp" />
</bean>
以上被称为三大组件。
springmvc帮我们默认加载了这些组件: