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