【职坐标】SpringMVC和struts2的区别对比
2017-09-21 12:05
405 查看
第一点:机制不同
springMVC的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这样就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。springMVC入口代码
<!-- 配置springmvc前端控制器 --> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> <!-- 容器启动时就初始化 --> <load-on-startup>1</load-on-startup> </servlet> <!-- springMVC入口路径 --> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
Struts2入口代码
<!-- struts2入口过滤器 --> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
第二点:性能不同
spring会稍微比struts快。spring mvc:是基于方法的设计,,粒度更细,但要小心把握像在servlet控制数据一样。
sturts是基于类。Struts中每次发一次请求都会实例一个action,每个action都会被注入属性
第三点:参数传递
此点请通过实例去领会。不做过多讲解第四点:设计思想
struts更加符合oop的编程思想spring在servlet上扩展。
第四点:intercepter的实现机制
struts有以自己的interceptor机制,spring mvc用的是独立的AOP方式 struts的配置文件量比springMVC大虽然struts的配置能继承,但是论使用上来讲,springMVC使用更加简洁,开发效率SpringMVC确实比struts2高。
springMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上spring3mvc就容易实现restful url
struts2是类级别的拦截,一个类对应一个request上下文;实现restfulurl要费劲,因为struts2 action的一个方法可以对应一个url;而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。
spring3 mvc的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架方法之间不共享变量,而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的,这不会影响程序运行,却给我们编码,读程序时带来麻烦。
第五点: Spring3 mvc的验证
支持JSR303,处理ajax的请求更是方便,只需一个注解@ResponseBody相关文章推荐
- struts1,struts2,springMVC终极对比
- Struts2和SpringMvc的区别(面试)
- 终于有SpringMvc与Struts2的对比啦
- SpringMVC与Struts2区别与比较总结
- springmvc与struts2的区别
- SpringMVC与Struts2区别与比较总结
- SpringMVC与Struts2区别与比较总结
- SpringMVC与Struts2区别与比较总结
- SpringMVC与Struts2的对比
- SpringMVC与Struts2的区别
- SpringMvc与Struts2的对比
- springmvc与struts2的区别
- SpringMVC和Struts2的区别
- springMVC与Struts2的区别
- SpringMVC与Struts2区别与比较总结
- springmvc 和struts2的区别?struts2工作原理?
- Struts1和Struts2的区别和对比
- SpringMvc与Struts2的对比
- SpringMVC与Struts2的对比
- Struts2、SpringMVC、Servlet(Jsp)性能对比 测试 。 Servlet的性能应该是最好的,可以做为参考基准,其它测试都要向它看齐,参照