一、Struts1:
1、基于Servlet(ActionServlet),actionForm众多(类的爆炸),action单例(数据安全[线程安全]问题_实例变量);
2、将所有任务的解决都集于一身.(不容易扩展和定制);
3、action位于控制层. extends Action{...};
4、action中struts1的action和原生servlet api(HttpServletRequest,HttpServlerResponse)绑定在一起,因此不容易测试,需要部署到web容器中进行测试.
二、Struts2:
1、基于filter,没有actionform,action(原型的,独占);
2、separate aware:分离关注.解耦.(interceptor,拦截器);
3、action是模型层(接受参数+pojo);
4、action不需要和struts的action和原生servlet API(HttpServletRequest,HttpServlerResponse)耦合在一起,所以更容易测试,不需要一定要部署到web环境中进行测试;
5、struts2是更加整洁的mvc框架(原因是采用了separate aware技术,实现任务的拆解);
6、Action相关:有很多资源文件需要和Action放在一起.名称一致;