关于STRUTS1和STRUTS2中的ACTION,我想说的是:
1:就作用来说,在框架里都充当里控制器的角色,用于处理客户端请求,并生成响应。
2:STRUTS1的ACTION与SERVLET API和框架自身耦合,不利于测试和代码重用。STRUTS2的ACTION就是一个简单POJO ,既不依赖与SERVLET,也不依赖框架。
2:就范围来讲,STRUTS1中的ACTION是APPLICATION范围内的,也就是对于单个ACTION而言,它只会被实例化一 次,被所有的客户请求所共用。这其实就是一种单例模式。STRUTS2中的ACTION则完全不同,对于每个用户REQUEST,STRUTS2都会产生一个新的ACTION实例用于处理本次REQUEST。struts2.x是线程安全的,每一个请求对象产生一个实例,避免了线程安全问题;而struts1.x的action被所有的线程所共享。