项目框架由Struts2转SpringMVC,总结了下两者区别
1、Struts2 核心是一个Filter StrutsPreparedAndExcuteFilter
SpringMVC是Servlet DispatcherServlet 控制请求分发
2、
Struts是基于类开发,参数传递通过类属性, 每次请求实例化一次action,set注入req数据 由类拦截 只能多例 一个action对应一个上下文
SpringMVC基于类种方法,一个url对应一个方法, 通过方法形参传递参数, 可单例 方法拦截,注解方法注入request 一个方法对应一个上下文
3、Struts采用值栈存储请求及响应数据,ognl表达书存取数据
成员属性接收参数,参数被多个方法共享 类属性被所有方法共享
SpringMVC采用request解析请求内容,内部gerParameter给形参赋值, 再把处理过的数据ModelAndView对象存储 Model存储数据,View返回页面 把对象通过request传输到页面
方法独立 独享req res数据 通过参数获取数据,结果由modelMap交给框架, 方法间不共享变量
4、Struts与Spring集成,格式转换 SpringMVC与Spring无缝集成
5、数据验证方面,SpringMVC更灵活
6、拦截机制实现,
SpringMVC独立AOP实现,
Struts2有自己的interceptor机制 配置相对复杂
7、rest架构 SpringMVC方法易实现
Struts2 action方法对RUL 类属性被方法共享,无法用注解或其他表示属性方法实现
8、Ajax Spring@ResporseBody Struts集成Ajax用插件或自己写代码 不方便
后边几条纯属百度搜索结果,实际开发中未用到,只是描述,不懂原理