- 相同点:都是基于mvc的表现层框架,都用于web项目的开发。
- 不同点:
- 前端控制器不一样。springmvc的前端控制器是一个servlet(DispatcherServlet)。strtus2的前端控制器是一个filter(StrutsPreparedAndExecutorsFilter)。
- 请求参数接收方式不一样。springmvc通过处理器方法的形参接收请求的参数数据,基于方法的开发,是线程安全的,就可以设计为多例或者单例模式的开发,推荐使用单例模式开发,好处执行效率更高。struts2是通过类的成员变量来接收请求的参数数据,基于类的开发,是线程不安全的,只能设计为多例模式的开发。
-
Struts2采用的是值栈存储请求以及响应数据,OGNL存取数据,SpringMvc采用request来解析请求内容,然后由其内部的getParameter给方法中形参赋值,再把后台处理过的数据通过ModelAndView对象存储,Model存储数据,View存储返回的页面,再把对象通过response传输到页面去。