AjaxAnywhere源代码阅读

AjaxAnywhere主体在AAFilter中,这是一个过滤器,也是AA中的一个要类,配置文件在web.xml中。

在doFilter(。。。)方法中
(1)检查请求是否包含aaxmlrequest标志,如果没有,调用其它过滤器处理,处理完后直接返回;如果有,进行(2)

(2)设置请求编码为UTF-8,
设置响应头部:Cache-Control=no-cache,Expires=0,Pragma=no-cache,
包装成带缓冲的响应对象。

(3)从请求对象中取出“aazones”参数的所有值(以逗号分割),并加入到需要刷新的区域对象(以Set对象保存)中。

(4)调用其它的过滤器,处理完成后控制权返回到本过滤器

(5)如果需要重定向,则调用XMLHander重定向处理;如果不不需要,则调用XMLHandler处理需要刷新的区域。

XMLHandler类

(1)sendZones(。。。)方法:
A)遍历每一个需要刷新的区域,进行如下处理:
用本区域的名字作为属性生成一个新的节点<zone name="zone1"></zone>;
把产生的HTML内容作为子节点加入节点;
把本区域的JS代码加入到List列表中;
把本区域的图象加入到Set中;
把本节点加入到文档树中;
B)遍历每一个JS代码,进行如下处理:
生成一个新的节点<script></script>;
把JS代码作为子节点加入节点;
把本节点加入到文档树中;
C)遍历每一个图象,进行如下处理:
生成一个新的节点<image></script>;
把图象作为子节点加入节点;
把本节点加入到文档树中;
D)调用TransformerDOM树,然后响应对象输出文档到客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值