经过这一步,终于通过了DefaultActionInvocation创建了Action。
然后我们回到上一步,成功创建Action之后就获取与之相关的列表,并用一个list集合装起来,依次迭代它们。
// get a new List so we don't get problems with the iterator if someone changes the list
List<InterceptorMapping> interceptorList = new ArrayList<InterceptorMapping>(proxy.getConfig().getInterceptors());
interceptors = interceptorList.iterator();
执行完毕后再执行Action,再封装结果集,再出,给客户端响应。
防止内存泄漏(内存泄漏是指分配出去的内存不再使用,但是无法回收),当然在clear的时候还是要根据前面提到的计数器来判断是否清除。
struts1的业务控制类必须继承ActionSupport,struts2可以不用继承
struts1是单例的,存程安全问题,struts2是多例的,不存程安全问题
struts1的业务控制类需要依赖servletAPI,struts2不需要
struts1对于页面请求的参数是通过一个ActionForm表单来收集的,struts2直接通过注入
struts1的业务流程是固定的(可以参考我的另一篇博客struts1原理),struts2可以通过改变这个流程
struts1是通过servlet来匹配所有的请求,struts2是通过filter来匹配所有的请求
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-78438-13.html
老家台湾的