SpringMVC 和 Struts2 区别

本文对比了SpringMVC和Struts2两大Web框架,重点介绍了它们在开发效率、性能、请求处理机制和配置方面的区别。SpringMVC采用方法级别的拦截,而Struts2基于类级别;SpringMVC的入口是servlet,Struts2则是filter。SpringMVC在内存消耗和性能上优于Struts2。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. springMVC是方法级别的拦截,struts2是基于类级别的拦截
  2. Struts2有以自己的interceptor机制,SpringMVC用的是独立的AOP方式,这样导致 Struts2的配置文件量还是比SpringMVC大
  3. SpringMVC的入口是servlet,而Struts2是filter

简单介绍一下Struts2的值栈?

值栈是对应每一个请求对象的数据存储中心。Struts2的一个很重要的特点就是引入了值栈。之前我们通过缓存或者模型驱动在action和页面之间传递数据,数据混乱,并且难以管理,缓存还有时间和数量限制,使用起来非常的困难。值栈的引入解决了这个问题,它可以统一管理页面和action之间的数据,供action、result、interceptor等使用。我们大多数情况下不需要考虑值栈在哪里,里面有什么,只需要去获取自己需要的数据就可以了,大大的降低了开发人员的工作量和逻辑复杂性。

 

   4 .SpringMVC开发效率和性能高于Struts2  (体现以下几个方面)

  1. ) Struts2每次来了请求就创建一个Action,一个Action对象对应一个request上下  ,消耗内存
  2. ) 由于Struts2需要针对每个request进行封装,把request,session等servlet 生命周期的变量封装成一个一个Map,供   给每个Action使用(这就解释了为什么struts2获取这些属性值比较方便 快捷的原因),并保证线程安全, 所以在原则上,是比较耗费内存的
  3. )SpringMVC的入口是servlet,而Struts2是filter 

             Servlet的流程比较短,url来了之后就对其进行处理,处理安慰你就返回数据或者 转向另一个页面

             Filter的流程就比较长,在一个filter处理之后就可以转向另一个filter进行处理, 然后再交给servet

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值